バッチファイル実行後もウインドウ(DOS窓/コマンドプロンプト)を閉じない方法

バッチファイルをダブルクリックして実行後、そのウインドウでそのまま作業したい時もありますよね? 例えば、バッチファイルで何らかの初期設定をして、そのままそのウインドウで作業したいとか。

そんな時は、cmd.exeに/kオプションを付ける事でウインドウを閉じない様にできます。具体的な方法を3種類ご紹介しますね。

例として、

set FUGA=no

をバッチファイルで実行し、そのままそのウインドウで作業する場合を説明します。実際は、これらを実行したいコマンドに置き換えてください。

方法その1 二重バッチ

この方法では、2つのバッチファイルを使います。

init.bat

set HOGE=yes
set FUGA=no

terminal.bat

cmd.exe /k init.bat

この2つのファイルを同じディレクトリに置いて、terminal.batをダブルクリックすればOKです。

では、init.batの内容が本当に有効になっているか確かめてみましょう。terminal.batを実行した時に開いたコマンドプロンプト上で、

> set HOGE

( >はプロンプトを表しています)

を実行して、 HOGE=yes と表示されれば成功です。同様に > set FUGA を実行して、 FUGA=no と表示されれば成功です。

方法その2 バッチファイル+ショートカット

この方法では、バッチファイルは一つで、それを起動するショートカットを作ります。

まずは、以下の内容でterminal.batを作成します。

terminal.bat

set HOGE=yes
set FUGA=no

先ほどのinit.batと同じですね。

次に、このバッチファイルのショートカットを作ってください。ショートカットの作り方は大丈夫ですよね?terminal.batを右クリックでD&Dして、[ショートカットをここに作成]を選びます。

ショートカットを作成するディレクトリ/フォルダはどこでもOKです。

次に、そのショートカットを右クリックし、[プロパティ]選択します。例えば、terminal.batがC:¥にあるとすると、リンク先は C:¥terminal.bat となっていますよね? これを cmd.exe /k C:¥terminal.bat という様に、先頭にcmd.exe /kを追加して[OK]を押します。

そうすると、ショートカットのアイコンがコマンドプロンプトのアイコンに変わります。後は、このショートカットを起動すればOKです。HOGE、FUGAの確認方法は先ほどと同じです。

この方法なら、バッチファイルが一つで済んでスマートですね。

方法その3 一つのバッチファイルでやっちゃう

前の2つの方法では、2つのファイルが必要でした。これを一つのファイルでやっちゃおういうのがこの方法です。

terminal.bat

cmd.exe /k ^
set HOGE=yes ^
& set FUGA=no

これだけです。あとは、terminal.batをダブルクリックすればOKです。 HOGE、FUGAの確認方法は先ほどと同じです。

cmd.exeは実行したいコマンドを渡して起動することができます。複数のコマンドを渡す場合はコマンドを“ & ”で繋ぎます。

今回の場合だと、 cmd.exe /k "set HOGE=yes & set FUGA=no" (この場合は""が必要) です。

もちろん、バッチファイルにこのまま書いても良かったんですが、コマンドは一行毎に分けた方が記述しやすいですし、メンテナンスもやりやすいです。そこで、コマンドを複数行に渡って書くための“ ^ ”を使いました。“ ^ ”を行末に書くことで、次の行も続けて処理してくれます。

例えば、上記のコマンドに加えて、dirも実行したくなったらこうです。

cmd.exe /k ^
set HOGE=yes ^
& set FUGA=no ^
& dir

僕的には2つ目の方法がおすすめです。 バッチファイル自体はC:¥Toolsとかに置いて、そのショートカットをデスクトップやクイック起動バーに置くのが好み。

どの方法でもコマンドプロンプトがとても便利に使えるのでぜひ試してみてください。