Powershell: スクリプトからファイル選択ダイアログボックスを開く

引き続き PowerShell の書き方について。

スクリプトの中で、特定のファイルを指定したいことがあります。例えば、保存してあるルーターのコンフィグレーションファイルを指定して読み込みたいような場合ですね。

ファイルダイアログボックスを開いて、ファイルを指定して、変数にパスを取り込みたい訳です。
当然、このような要求はあるはずですので検索してみたところ、親切な解説とサンプルが見つかりました。というか、MSのサイトじゃん。

https://gallery.technet.microsoft.com/scriptcenter/5481e36a-8073-40ae-92cd-fbef1e6df99a

これをそのまま使うと、簡単。
緑色の部分が、関数の定義。-initialDirectory を指定すると、最初に開くフォルダーを指定できます。

Function Get-FileName($initialDirectory) 
{   
  [System.Reflection.Assembly]::LoadWithPartialName("System.windows.forms") |  Out-Null
 
    $OpenFileDialog = New-Object System.Windows.Forms.OpenFileDialog 
    $OpenFileDialog.initialDirectory = $initialDirectory 
    $OpenFileDialog.filter = "All files (*.*)| *.*" 
    $OpenFileDialog.ShowDialog() | Out-Null 
    $OpenFileDialog.filename
}
$working_dir="C:\Users\me\Documents"
 
$file_path=Get-FileName -initialDirectory "$working_dir"
echo $file_path

こんな感じで、変数 $file_path に指定したファイルのフルパスが入りますので、あとは自由に利用できます。

コメントを残す