バッチファイルを実行したら勝手に最小化するようにします。正確には、ウィンドウが最小化した状態で自分自身を再実行します。

コマンド

バッチファイルの先頭に次のコマンドを記述します。
if not "%1" == "1" (
    start /min cmd /c call "%~f0" 1
    exit /b
)

解説

%1 は、バッチファイルに渡された1個目の引数を表します。ダブルクリック等でバッチファイルが実行されたときには引数はありませんから、if の中身が実行されます。

Start /min <プログラムまたはコマンド> で、プログラムやコマンドプロンプトのウィンドウを最小化して実行します。

Cmd /c <コマンド> で、コマンドを実行し、完了後に cmd を終了します。

Call <ファイル> <引数> で、引数を与えてバッチファイルを実行します。

%~f0 は、自分自身のフルパスのファイル名を表します。

結局、start /min cmd /c call "%~f0" 1 は、最小化したコマンドプロンプトで引数 1 を渡して自分自身を実行する、という意味になります。最初に実行されたバッチファイルは、このあと exit で終了します。

2回目に実行されたバッチファイルでは "%1" == "1" なので、if の中身が実行されません。

その他

Start /min call "%~f0" 1 でも動きますが、バッチファイルが完了してもコマンドプロンプトが終了しません。終了するには、バッチファイルの最後に exit を記述しておく必要があります。

Start /min cmd /k call "%~f0" 1 も上のコマンドと同じ動きをします。

Start /min cmd /k "call "%~f0" 1 & exit /b" は start /min cmd /c call "%~f0" 1 と同じ動きをします。

Q. /b 要る?
A. 多分要らない。

注意

もしこのコマンドを弄って色々検証したいときは、連続無限ループを防ぐためにバッチファイルの最初に pause か timeout を書いておいたほうがいいと思います。

参考