コマンドプロンプトの起動時にバッチファイルを自動的に実行させるTech TIPS

コマンドプロンプトの起動時に、初期設定やカスタマイズのためのコマンドやスクリプトなどを実行できると便利である。そのためには、バッチファイルを自動実行させるショートカットを作成するとよい。

» 2015年09月25日 05時00分 公開
[打越浩幸デジタルアドバンテージ]

対象OS:Windows 7/Windows 8/Windows 8.1/Windows 10/Windows Server 2008 R2/Windows Server 2012/Windows Server 2012 R2



解説

 コマンドプロンプト上で作業をする場合、コマンドプロンプトの起動と同時に、最初に自動的に何らかのコマンドを実行させたり、環境変数を設定させたりしたいことがある。

 例えば、英語表示モードに切り替えたり(関連記事参照)、コマンドの実行に必要な各種の環境変数を準備したい場合などである。システム環境変数などで設定してしまうとシステム全体に対して影響を与えるため、それを避けるには、コマンドプロンプトを起動してから、特定のバッチファイルやコマンドなどを実行してセットアップできると便利である。

 またシステム開発を行う場合は、利用するツールやライブラリのバージョンなどを用途に応じて切り替えることがよくある。例えば、同じ名前のコマンドやファイルが複数の場所に存在している場合は、環境変数やPATHの設定などでそれらを切り替えて利用する。バージョンごとの環境変数の設定はバッチファイルでコマンド化すればよい。

 ただ、コマンドプロンプトを起動してから、それらのバッチを手動で呼び出すのは面倒だし、分かりづらい。例えば「Java 7用開発環境」と「Java 8用開発環境」というメニューをあらかじめ用意しておき、クリックするだけで自動的にコマンドプロンプトの起動と、初期設定タスク用バッチファイルの実行などができると便利だろう(注:Java 7はすでにサポート終了。これはあくまでも例示用)。

Windows Server Insiderの関連記事 連載 コマンドライン徹底活用 第2回「コマンドプロンプト入門

 コマンドプロンプトの起動と同時に特定のコマンドを実行するには、レジストリでAutoRun値を設定するという方法がある(関連記事および「help cmd」コマンド参照)。しかし、これだと全てのコマンドプロンプトで常に同じように実行されるため、今回の目的とは異なる。

 コマンドプロンプトの起動と同時に特定のコマンドを実行し、さらにその後は入力待ち状態にさせるためには、コマンドプロンプトに特別なオプションを渡すようなショートカットを作成すればよい。本TIPSではその方法を紹介する。

操作方法

 コマンドプロンプトの起動時に特定のプログラムやバッチファイルなどを実行するには、コマンドプロンプト(cmd.exe)に「/k」オプションと実行させたいコマンドのフルパス名を付けて実行すればよい。バッチファイルを直接起動すると、バッチファイルの終了と共にコマンドプロンプトも終了してしまうが、/k オプションを付けておくと終了せずにユーザーの入力待ちになり、その後もコマンドを実行できる。

●ステップ1――実行用コマンドの用意

 コマンドプロンプトの起動時に特定のタスクを実行するには、実行するコマンド列を記述したバッチファイルを用意する。バッチファイルではなく、単独のプログラムでもよいが、起動用に登録できるプログラムは1つだけなので、通常はバッチファイルとして用意するのがよいだろう。

 例えば次のようなバッチファイルを用意する。これはJavaの開発環境をセットアップするバッチの例である。

※JDK用環境をセットアップするためのコマンドの例。ファイル名は「C:\Command\JavaJDK.cmd」とする。

@echo off
set JAVA_HOME=C:\Program Files\Java\jdk1.8.0_60  ……Java JDKのインストールパスを環境変数にセットする
path %JAVA_HOME%\bin;%PATH%  ……Java JDKのプログラムパスをPATHの先頭に追加する
java -version  ……JREのバージョンの表示
javac -version  ……Javaコンパイラーのバージョンの表示



 作成したバッチファイルをどこか適当な場所へ保存し(後でフルパスで指定するので、ファイル名や保存場所はどこでもよい)、正しく実行できるか一度確認しておく。そのためにはコマンドプロンプトを開いて、作成したバッチファイルを起動させてみる。コマンドが正しく実行され、環境変数も正しく設定されていることを確認しておく。

初期設定用コマンドの確認 初期設定用コマンドの確認
作成したバッチファイルを一度実行させて、正しく動作することを確認しておく。
  (1)Javaコンパイラーのバージョンを表示させてみる。
  (2)エラー。環境変数やPATHなどが設定されていないので、エラーになっている。
  (3)作成したバッチファイルを「cmd /k 〜」として実行してみる。エラーなしに実行できることを確認しておくこと。
  (4)ここは、新しく起動されたコマンドプロンプトの中。PATHや環境変数がセットアップされているので、今度は正しく実行できた。
  (5)環境変数も正しく設定されている。

●ステップ2――起動用ショートカットの作成

 次は、作成したバッチファイルを起動するためのショートカットを作成する。エクスプローラーでショートカットを作成したい場所へ移動してから右クリックし、ポップアップメニューから[新規作成]−[ショートカット]を選択する。

ショートカットの作成 ショートカットの作成
バッチファイルを起動するためのショートカットを作成する。
  (1)エクスプローラーで右クリックして[新規作成]を選択する。
  (2)[ショートカット]を選択する。

 「ショートカットの作成」ウィザードが起動するので、次のようなコマンドラインを入力する。「cmd /k 」は、指定したコマンドを最初に実行してからユーザー入力を待て、という指示である。「cmd /c 」としたり、単にバッチファイル名だけを指定すると、バッチファイルを実行後、すぐに終了してしまう。

cmd /k "<実行したいコマンドのフルパス名>"



 実行したいコマンドのフルパス名に空白文字が含まれていなければ引用符は不要だが、通常は引用符で囲んでおくのがよいだろう。

ショートカットの内容を設定する ショートカットの内容を設定する
/kオプション付きでコマンドプロンプトを起動する。このオプションの詳細については「help cmd」と実行すると表示されるヘルプなどを参照のこと。
  (1)「cmd /k」に続けて、実行するプログラムのパスを引用符で囲んで指定する。
  (2)これをクリックして、実行するプログラムを指定してパスを自動入力させた後に、「cmd /k」を先頭に追加してもよい。
  (3)入力できたらこれをクリックして次へ進む。

 引数がある場合は、コマンド名の後ろに続けて並べておけばよい。ただしコマンドプロンプトの仕様上(だと思われるが)、引用符を含むような引数は使えないことがあるので注意する。コマンド名を引用符で囲んでいると、引数部では引用符が使えないようである。

 ウィザードの次の画面では、ショートカットの名前を指定する。デフォルトでは「cmd.exe」になっているが、これでは分かりづらいので、分かりやすい名前に変更しておくこと。

ショートカットに名前を付ける ショートカットに名前を付ける
デフォルトではcmd.exeという名前になっているので、分かりやすい名前に変更する。
  (1)この名前がコマンドプロンプトのタイトルとして表示されるようになるので、分かりやすい名前に変更しておく。
  (2)これをクリックするとショートカットが作成される。

 作成されたショートカットをダブルクリックするとコマンドプロンプトが起動し、バッチファイルで記述したコマンドが自動的に実行されてから、入力待ちになるはずだ。

コマンドの実行の確認 コマンドの実行の確認
作成されたショートカットをダブルクリックすると、このようにコマンドプロンプトが開かれ、指定したバッチファイルが実行されるはずである。
  (1)先ほど付けたショートカット名がここに表示される。
  (2)初期実行バッチファイルの実行結果。
  (3)Javaコンパイラーを起動してみる。
  (4)正しく実行できた。
  (5)環境変数も正しく設定されている。
  (6)起動時のフォルダーは、デフォルトではこのようにcmd.exeの場所になっているので、必要なら変更しておく。

●コマンドの起動フォルダーや画面サイズなどの変更

 上記の手順で作成したショートカットからコマンドプロンプトを起動すると、そのカレントフォルダーはcmd.exeのあった場所(デフォルトでは「C:\Windows\System32」)になる。これが不便なら別の場所に変更できる。

 そのためには作成したショートカットを右クリックしてプロパティを表示させる。そして、[ショートカット]タブの[作業フォルダー]のパスを変更する。通常のコマンドプロンプトでは作業フォルダーは「%HOMEDRIVE%%HOMEPATH%」になっているので、これに変えると、ユーザーのデフォルトのフォルダー(ユーザーホーム)がカレントフォルダーになる。

作成したショートカットのカスタマイズ 作成したショートカットのカスタマイズ
ショートカットのプロパティ画面を使えば、コマンドの起動フォルダーや画面サイズなどを変更できる。
  (1)このタブを選択する。
  (2)ショートカットに登録した内容。起動するコマンドを変更したければ、この内容を修正すればよい。
  (3)コマンド起動時のカレントフォルダーはここで指定する。
  (4)[オプション]タブでは、コマンドの履歴数や簡易編集モードを設定できる。
  (5)[レイアウト]タブでは、画面のレイアウト(行数やウィンドウサイズなど)を設定できる。

 画面のサイズや編集モードなどを変更したければ、上の画面の[オプション]や[レイアウト]タブで設定を変更する。スタートメニュー(スタート画面)やタスクバーに登録したければ、右クリックしてポップアップメニューから登録したり、[ファイル名を指定して実行]コマンドでプログラムフォルダーを開いて(関連記事参照)、ドラッグ&ドロップしたりする。この辺りは通常のコマンドプロンプトのカスタマイズ方法と同じである。

Copyright© Digital Advantage Corp. All Rights Reserved.

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。