2022年5月
1 2 3 4 5 6 7
8 9 10 11 12 13 14
15 16 17 18 19 20 21
22 23 24 25 26 27 28
29 30 31        
無料ブログはココログ

« WSFファイルをCMDファイルにする呪文(テキストヘッダ) | トップページ | バッチファイル自身の実行結果をファイルに残すバッチファイル »

2007年4月19日 (木)

起動されたら自身のバッチファイルを最小化で起動し直すバッチファイル

ショートカットファイルや別のバッチファイルを作れば、
バッチファイルを最小化で起動することは出来ます。
しかし、バッチファイルだけで、ダブルクリックなどで、
そのまま起動して、最小化にすることは出来ません。
そこで、起動されたら自身のバッチファイルを最小化で起動し直します。

バッチファイルの先頭に以下に1行を付加します。

@if not "%~0"=="%~dp0.\%~nx0" start /min cmd /c,"%~dp0.\%~nx0" %* & goto :eof

或いは、以下の4行

@if not "%~0"=="%~dp0.\%~nx0" (
start /min cmd /c,"%~dp0.\%~nx0" %*
goto :eof
)

自身のバッチファイルを再帰呼び出ししています。
このとき、リカージョンを防止するために、
バッチファイルのパス表記を細工(非正規化/冗長化)しています。
これには、"%~dp0.\%~nx0"のほかに、"%~f0\..\%~nx0"も使えます。

(注) もし、cmd /c,"の,がないとドロップ時などに失敗します。

« WSFファイルをCMDファイルにする呪文(テキストヘッダ) | トップページ | バッチファイル自身の実行結果をファイルに残すバッチファイル »