LoginSignup
0
0

More than 1 year has passed since last update.

PowerShell ISE上で、ファイル選択ダイアログと16進数ダンプ

Last updated at Posted at 2022-08-20

【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 "ファイルを選択しませんでした。"
}




0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0