[PowerShell]ファイルリストをJSONファイルで取得

この記事は約2分で読めます。
スポンサーリンク

やりたいこと

Windows上のサブフォルダ内を含めてファイルをJSON形式でファイルに保存します。

スポンサーリンク

実現方法

PS1ファイルの作成

file_list.ps1ファイルを作成し、以下の内容を貼り付け保存します。

$targetPathと$outputPathの値は環境に合わせて変更してください。

$targetPath = "ファイルリストを作成するフォルダ"
$outputPath = "出力ファイル"

Get-ChildItem -Path $targetPath -Recurse -File  | Select-Object Name, FullName | ConvertTo-Json |Out-File $outputPath -Encoding UTF8

具体例:

$targetPath = "./data"
$outputPath = "./file_list.json"

Get-ChildItem -Path $targetPath -Recurse -File  | Select-Object Name, FullName | ConvertTo-Json |Out-File $outputPath -Encoding UTF8

$targetPathと$outputPathは日本語だと動作しないようです。サブフォルダ名やファイル名に日本語が含まれても問題ありません。

動作しない場合は$targetPathと$outputPathを相対パス、もしくは絶対パスになるようにしてください。

あとでJavascriptなどで使いやすいようにUTF8で保存しています。

(fetchは基本的にUTF8でJSONを取得)

PS1ファイルの実行

PoweShellを起動(Windowsメニューを表示し、Powerと入力し以下をクリック)します。

cdコマンドでPS1を作成したフォルダに移動します。

以下のコマンドをを実行します。

./file_list.ps1
スポンサーリンク

結果

以下のようにJSON形式でファイルの一覧が保存できました。

file_list.json

[
{
"Name": "1.txt",
"FullName": "G:\\test\\1.txt"
},
{
"Name": "2.txt",
"FullName": "G:\\test\\2.txt"
}
]

コメント

タイトルとURLをコピーしました