前回PowerShellにて16進数ダンプの記事を書いたが、ファイル選択が面倒なので、ファイル選択ダイアログを表示することとした。フォルダ選択はこちら
ファイル選択ダイアログ.ps1
#C#(.NETライブラリ)の名前空間を指定してアセンブリを有効にする
#※記述しなくても動いた。
[void][Reflection.Assembly]::LoadWithPartialName("Ststem.Windows.Forms")
#ファイル選択ダイアログのインスタンス生成
$OpenFileDialog=New-Object Windows.Forms.OpenFileDialog
#タイトル、指定しない場合「開く」になる
$OpenFileDialog.Title="ファイル選択"
#拡張子、指定しない場合「空白で全てのファイル」になる
$OpenFileDialog.Filter="テキスト(*.txt)|*.txt|全てのファイル(*.*)|*.*"
#デフォルトディレクトリ、指定しない場合「このスクリプトと同じ場所」になる
$InitialDirectory="C:\Users\〇〇\Desktop"
$OpenFileDialog.InitialDirectory=$InitialDirectory
#ダイアログ表示
$Rsult=$OpenFileDialog.ShowDialog()
#ファイルを選択した場合
IF($Rsult-eq[System.Windows.Forms.DialogResult]::OK){
#ここに選択したファイルの操作を記述
#Invoke-Item は、実行可能ファイルを実行するなど、関連付けられているアプリケーションでファイルを開く。
Invoke-Item $OpenFileDialog.FileName
#コンソールにファイル名表示
Write-Host "選択したファイルは「"($OpenFileDialog.FileName)"」です。"
#コンソールに内容表示
Write-Host "内容は「"(Get-Content -Path $OpenFileDialog.FileName)"」です。"
}else{
#コンソールにメッセージ表示
Write-Host "ファイルを選択しませんでした。"
}