【PowerShellにて16進数ダンプ】と【PowerShellファイル選択ダイアログについて。】を組み合わせてダンプをファイルに追加して開く。
ISE.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\Public"
$OpenFileDialog.InitialDirectory=$InitialDirectory
#ダイアログ表示
$Rsult=$OpenFileDialog.ShowDialog()
#ファイルを選択した場合
IF($Rsult-eq[System.Windows.Forms.DialogResult]::OK){
#選択したファイルを開く前にMessage
Write-Host "選択したファイルを開きます。"
#コンソールにファイル名表示
Write-Host "選択したファイルは「"($OpenFileDialog.FileName)"」です。"
#logファイルの場所を代入
$str=$InitialDirectory+'\log.csv'
#新規にlogファイルを作成し、現在の年月日時分秒を書き込む
#get-date | set-content $str
Set-Content $str -Value ""
$readcount=16
$totalCount=$readcount*1000
#
#ファイルから100要素ずつ読み込み一連の文字をバイトのシーケンスにエンコードする、パイプの後は改行できる
#この場合一度に-readcountバイト読み込みそれを-TotalCountバイトになるまで繰り返す指定なしは全て読み込む
Get-content -path $OpenFileDialog.FileName -encoding byte -readcount $readcount -TotalCount $totalCount|
#2桁表示にする。空白なら無しにする。
foreach-object{
('{0:x2}'-f$_).replace(' ',",")
}|
#ファイルに追加する
add-content $str
#>
#現在の年月日時分秒をファイルに追加する
#get-date | add-content $str
#コンソールにメッセージ表示
Write-Host "log.csvに結果を出力しました。log.csvファイルを開きます。"
#log.csvファイルを開く
Invoke-Item $str
}
else{
#コンソールにメッセージ表示
Write-Host "ファイルを選択しませんでした。"
}