やりたいこと
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"
}
]
コメント