バッチファイルの中でファイルダイアログや フォルダーダイアログや メッセージボックスを表示してファイル名などの戻り値をバッチファイルの変数に連携する方法
Vbスクリプトを使用せずパワーシェルで行う方法です
ファイルダイアログ
FOR /F "usebackq" %%a IN (`powershell -command "Add-Type -assemblyName System.Windows.Forms ; $dialog = New-Object System.Windows.Forms.OpenFileDialog;if ($dialog.ShowDialog() -eq 'OK') { return ($dialog.FileName)} else { return ('')}"`) DO @SET contents=%%a
echo %contents%
フォルダーダイアログ
FOR /F "usebackq" %%a IN (`powershell -command "Add-Type -assemblyName System.Windows.Forms ; $dialog = New-Object System.Windows.Forms.FolderBrowserDialog;if ($dialog.ShowDialog() -eq [System.Windows.Forms.DialogResult]::Cancel) { return ($null)} else { return ($dialog.SelectedPath)} "`) DO @SET contents=%%a
echo %contents%
メッセージボックス
FOR /F "usebackq" %%a IN (`powershell -command " Add-Type -assemblyName System.Windows.Forms ;return [System.Windows.Forms.MessageBox]::Show('which', 'which', 'YesNo')"`) DO @SET contents=%%a
echo %contents%
if "%contents%" equ "Yes" (
echo レベル0
) else if "%contents%" equ "No" (
echo レベル1
) else (
echo レベルは%contents%
)
ボタンの種類を変える
OK
YesNo
OKCancel
YesNoCancel
ディスカッション
コメント一覧
まだ、コメントがありません