1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 5 years have passed since last update.

パワーシェルでファイルのタイムスタンプをCSVファイルに出力する

Last updated at Posted at 2018-10-07

PowerShellのコマンドはどうにもすぐ忘れるので、自分でも記事を書いてみることにした
パワーシェルでファイルのタイムスタンプをcsvファイルへと出力できないか思案し、なんとか形になったので結果をまとめる

##動作環境

  • Windows10
  • PowerShell 5.1

##PowerShellソースコード
今回のファイルの命名規則はアルファベットとしてみた

Exportcsv.ps1
$csv="timestamp.csv"
$extension="xyz"
#該当ファイル名もしくは該当ファイルの命名規則を配列に入れる
$filenameArray=@("a","b","c","d","e","f","g","h","i","j","k","l","m","n","o","p","q","r","s","t","u","v","w","x")
$exportcsvArrary=@()

#ファイルの個数分繰り返す
foreach($i in $filenameArray){
    if(Test-Path .\*$i.$extension){
        $filename=$(Get-ItemProperty .\*$i.$extension).Name #(フォルダ内のアイテム)ファイル名を取得
        $timestamp=$(Get-ItemProperty .\*$i.$extension).LastWriteTime.ToString('yyyy/MM/dd HH:mm:ss')
        #変数に格納
        $storecsv=New-Object PSObject | Select-Object Information1,Information2
        $storecsv.Information1=$fileName   #1列目の(Information1の下の)2行目にファイル名を出力
        $storecsv.Information2=$timestamp  #2列目の(Information2の下の)2行目にファイル名を出力
        $exportcsvArrary+=$storecsv
    }
}
#ホスト(コンソール)画面に結果を表示
$exportcsvArrary | ft -AutoSize

#-Encoding DefaultでシフトJIS出力
$exportcsvArrary| Export-Csv -NoTypeInformation .\$csv -Encoding Default

#csvを起動し終了を待つ
Write-Host プロセスの終了を待機中
Start-Process .\$csv -wait
[GC]::Collect()

※最初はループ処理をfor文にしていたが、foreach文の方が配列と相性が良さそうなのでそちらにした

ファイル名がa~xとなっている場合のホスト画面

Information1 Information2       
------------ ------------      
a.xyz        yyyy/MM/dd HH:mm:ss
...(略)...
x.xyz        yyyy/MM/dd HH:mm:ss

プロセスの終了を待機中

timestamp.csvが生成される

##参考
特に以下のサイトは大変参考になった
カスタムオブジェクトの作り方などは参考にしたというよりも倣いました

##最後に
上記では必要ないかもしれないが調べているうちに
[GC]::Collect()
というコマンドが出てきた
.NET Frameworkの機能でガベージコレクションを強制実行するものらしいが、
筆者はここらへん全く理解できてないので今後理解を深めていきたい

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?