【Windows標準】ファイル名取得【コマンドプロンプト/PowerShell】

簡易ツール

ファイル操作を行う処理ではファイル名を参照する事が多々あると感じており、
エクスプローラから対象を指定する処理を作成しなおすコストを軽減させる為、備忘録としてコマンドを紹介いたします

概要

PowerShellコマンドにてファイル参照用のエクスプローラを呼び出し、
エクスプローラ内で選択したファイルの情報を取得します

    
@rem ファイル取得
set file=
set command=`powershell "Add-Type -assemblyName System.Windows.Forms; $FileDialog=New-Object System.Windows.Forms.OpenFileDialog; $FileDialog.Filter='CSV Files|*.csv'; $FileDialog.Title='ファイルを選択してください'; $FileFullPath=''; if($FileDialog.ShowDialog() -eq[System.Windows.Forms.DialogResult]::OK) { $FileFullPath=$FileDialog.FileName;} $FileDialog.Dispose(); return $FileFullPath;"`

FOR /F "usebackq delims=" %%i IN (%command%) DO set file=%%i
@REM 空チェック
if "%file%"=="" (
  echo ファイルを選択してください
  pause
  exit
)

@REM ファイル名のみ取得
set filename=
FOR %%f IN (%file%) DO set filename=%%~nf
    

おわりに

ファイル名取得を単体ではあまり使う機会がありませんが、
他機能と組み合わせた普段使いの自作ツール用のいつでも確認できるメモとして覚えておくことをお勧めいたします

コメント