自分自身を最小化したり隠したりするWindowsバッチファイル
バッチファイルを2つ作れば対応できますが管理するのが大変なので一つのバッチファイルで方法を調べました
最小化するバッチファイル
使用したいバッチファイルの先頭に次の行を記述します
@if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof
バッチファイルが C:\test.bat だったとすると %~0 は C:\test.bat になり、%~dp0.\%~nx0 は C:\.\test.bat になります。その値が違うため1回目は自分自身を最小化して起動して終了します。2回目は%~0 は C:\.\test.bat になり値が同じくなるので2行目以降を実行します。
- フォルダパス … “%~dp0”
- ファイル名+拡張子 … “%~nx0”
- 最小化して引数を指定してコマンドプロンプトを起動 start /min cmd /c,"%~dp0.\%~nx0″ %*
別な書き方
if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c;"%~dp0.\%~nx0" %* && exit
if not "%~0"=="%~dp0.\%~nx0" powershell -NoProfile -WindowStyle minimized -Command "cmd /c,%~dp0.\%~nx0 %*" & goto :eof
if not "%~0"=="%~dp0.\%~nx0" powershell -NoProfile start-process cmd -ArgumentList '/c,%~dp0.\%~nx0 %*' -WindowStyle minimized & goto :eof
使用例
@if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof
rem 以下に実行したいコマンドを記述。
echo "%~0" "%~dp0.\%~nx0"
timeout /t 5
バッチファイルを最小化して実行する方法
コマンドプロンプトのウィンドウを最小化して実行する方法
非表示にしたり隠したりするバッチファイル
使用したいバッチファイルの先頭に次の行を記述します
if not "%~0"=="%~dp0.\%~nx0" powershell -NoProfile start-process cmd -ArgumentList '/c,%~dp0.\%~nx0 %*' -WindowStyle hidden & goto :eof
WindowStyleを変更すれば次の状態にすることができます
Normal
Hidden
Minimized
Maximized
ディスカッション
コメント一覧
まだ、コメントがありません