eightban's memo

残しておきたい記事をまとめてみました。このブログに書いてあるドキュメントやブログで配布しているファイルの使用によって発生するいかなる損害に対してもこのブログの管理者は責任を負いません。使用する場合は自己責任のもとに使用してください。

bat windows

自分自身を最小化したり隠したりする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

-bat, windows

Copyright© eightban's memo , 2024 All Rights Reserved Powered by STINGER.