SaveFileDialogを利用すると、出力先ファイル名を指定させるダイアログを表示させ、指定したファイル名
にアウトプットを保存することができる。$FileBrowser.FileNameにファイル名を指定しておくことで
ダイアログ表示時にデフォルトファイル名も指定することができる。
using namespace System.Windows.Forms
using namespace System.IO
Set-PSDebug -Strict
Add-Type -AssemblyName System.Windows.Forms
Add-Type -AssemblyName System.IO
$FileBrowser = New-Object System.Windows.Forms.SaveFileDialog
$FileBrowser.InitialDirectory = [Environment]::GetFolderPath('Desktop')
$FileBrowser.Filter = 'あらゆるファイル (*.txt,*.csv,*.*)|*.txt;*.csv;*.*'
$FileBrowser.Title = 'ファイルを選択してください'
$FileBrowser.RestoreDirectory = $true
$FileBrowser.FileName = 'test.txt'
if($FileBrowser.ShowDialog() -eq [System.Windows.Forms.DialogResult]::OK){
$Stream = New-Object StreamWriter($FileBrowser.FileName,$true, [Text.Encoding]::GetEncoding("Shift_JIS"))
if($Stream -ne $null )
{
$Stream.WriteLine([System.DateTime]::Now.ToString() +' ' + [System.Environment]::UserName + ': test')
$Stream.Close()
[System.Windows.MessageBox]::Show('選択したファイルに書き込みました:' + $FileBrowser.FileName)
}
}else{
[System.Windows.MessageBox]::Show('ファイルは選択されませんでした!')
}

コメント