Home >
Windows にまつわる e.t.c.
PowerShell でファイルダイアログを使う
PowerShell
ってバッチ処理ツールなので、ファイル選択はスクリプトに引数として渡すことが多いのですが、コンピューターがあまり得意じゃない方に操作してもらう場合にはこの手が使えないです
こんな時は Windows の UI であるファイルダイアログを使うと良い感じになります
早速 PowerShell でのファイルダイアログのハンドリングコードサンプルです
Windows PowerShell でしか使えないかなと思ったのですが、PowerShell 7.3.0
でも問題無く動きました
# アセンブリのロード
Add-Type -assemblyName System.Windows.Forms
# オブジェクトのインスタンス化
$FileDialog = New-Object System.Windows.Forms.OpenFileDialog
# ファイルタイプの指定
$FileDialog.Filter = "CSV Files|*.csv|All Files|*.*"
# default directory 指定するのなら
# $FileDialog.InitialDirectory = "C:\Test"
# 複数ファイル指定するのなら
# $FileDialog.Multiselect = $true
# ファイルダイアログのタイトル
$FileDialog.Title = "テストするファイルを選択してください"
# ファイル取得
if ($FileDialog.ShowDialog() -ne [System.Windows.Forms.DialogResult]::OK) {
Write-Output "処理をキャンセルしました"
# オブジェクトの後始末
$FileDialog.Dispose()
exit
}
# ファイル名のセット(複数ファイル指定にした場合は FileNames)
$TergetFileFullPath = $FileDialog.FileName
# オブジェクトの後始末
$FileDialog.Dispose()
|
こんな感じでファイルダイアログが開きます



Copyright © MURA
All rights reserved.