一括でファイルのリストを作成したい

おはようございます。すぎやまです。

この記事では、一括でファイルを整理する方法を紹介します。

まず、結論を記載します。

一括でリスト作成

  • バッチファイルを使用する場合、「echo」コマンドを使用
  • ps1ファイルを使用する場合、「Out-File」と「Get-ChildItem」コマンドを使用

下記、詳細を説明します。

手動でファイルリスト作成

多少手間がかかり、ミスが起きる可能性もありますが、
一番簡単な方法が手動でリストを作成することです。

しかしファイル数が増えると、時間が掛かるだけでなく、ミスが起きる可能性がかなり高くなります。

そのため、次に紹介する、バッチファイルやps1ファイルを使用する方法をお勧めいたします。

バッチファイルを使ってリスト作成

最初にファイルを作る手間がかかりますが、
バッチファイルを作成すれば簡単&確実にファイル移動が出来ます。

@echo off
setlocal enabledelayedexpansion

rem フォルダのパスを取得
set "targetDirectory=%cd%"

rem 対象ファイルの拡張子を入力
set /p "fileExtension=対象ファイルの拡張子を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...): "

set "OutputFile=filelist.csv"

echo "ファイル名","ファイルサイズ (バイト)" > %OutputFile%

for %%f in (*%fileExtension%) do (
    set "FileName=%%~nxf"
    set "FileSize=%%~zf"
    echo "!FileName!","!FileSize!" >> %OutputFile%
)

echo ファイルリストが %OutputFile% に書き出されました。

endlocal
pause

使用方法はこちらの記事をご覧ください。
このコードはファイル名とファイルサイズのリストを作成しますが、
作成時間をまとめるバージョンも紹介しております。是非ご一読ください

一度作ってしまえば使いまわせるので、非常におすすめです。

ps1ファイルを使ってファイル移動

バッチファイル同様、ps1ファイルを使用してもファイル移動が出来ます。

# スクリプトの開始
# フォルダパスの指定(必要に応じて変更)
$folderPath = Get-Location

# 出力ファイルのパス(必要に応じて変更)
$outputFile = Join-Path -Path $folderPath -ChildPath "\filelist.csv"

# フィルタリングする拡張子(必要に応じて変更、複数指定可)
$extensions =  Read-Host "対象ファイルの拡張子を入力後、エンターキーを入力してください(例: xlsx,docx,txt,csv ...)"

# フォルダ内のファイル一覧を取得
$fileList = Get-ChildItem -Path $folderPath -Filter *$extensions

# ファイル一覧を出力ファイルに書き込む
$fileList | ForEach-Object { $_.Name} | Out-File -FilePath $outputFile -Encoding UTF8

# 完了メッセージ
Write-Host "ファイルリストが $OutputFile に書き出されました。"

# ユーザーの操作を待つ
Read-Host "続行するにはEnterキーを押してください。"

使用方法はこちらの記事をご覧ください。

その他の作業を効率化したい方へ

今回はファイル移動の効率化について紹介しましたが、
これ以外にも簡単に効率化出来てしまう作業がたくさんあります。

こちらの記事に纏めておりますので、是非ご一読ください!

以上、最後まで読んでいただきありがとうございました。

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