コマンドプロンプトの起動時に、初期設定やカスタマイズのためのコマンドやスクリプトなどを実行できると便利である。そのためには、バッチファイルを自動実行させるショートカットを作成するとよい。
対象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はすでにサポート終了。これはあくまでも例示用)。
コマンドプロンプトの起動と同時に特定のコマンドを実行するには、レジストリでAutoRun値を設定するという方法がある(関連記事および「help cmd」コマンド参照)。しかし、これだと全てのコマンドプロンプトで常に同じように実行されるため、今回の目的とは異なる。
コマンドプロンプトの起動と同時に特定のコマンドを実行し、さらにその後は入力待ち状態にさせるためには、コマンドプロンプトに特別なオプションを渡すようなショートカットを作成すればよい。本TIPSではその方法を紹介する。
コマンドプロンプトの起動時に特定のプログラムやバッチファイルなどを実行するには、コマンドプロンプト(cmd.exe)に「/k」オプションと実行させたいコマンドのフルパス名を付けて実行すればよい。バッチファイルを直接起動すると、バッチファイルの終了と共にコマンドプロンプトも終了してしまうが、/k オプションを付けておくと終了せずにユーザーの入力待ちになり、その後もコマンドを実行できる。
コマンドプロンプトの起動時に特定のタスクを実行するには、実行するコマンド列を記述したバッチファイルを用意する。バッチファイルではなく、単独のプログラムでもよいが、起動用に登録できるプログラムは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コンパイラーのバージョンの表示
作成したバッチファイルをどこか適当な場所へ保存し(後でフルパスで指定するので、ファイル名や保存場所はどこでもよい)、正しく実行できるか一度確認しておく。そのためにはコマンドプロンプトを開いて、作成したバッチファイルを起動させてみる。コマンドが正しく実行され、環境変数も正しく設定されていることを確認しておく。
次は、作成したバッチファイルを起動するためのショートカットを作成する。エクスプローラーでショートカットを作成したい場所へ移動してから右クリックし、ポップアップメニューから[新規作成]−[ショートカット]を選択する。
「ショートカットの作成」ウィザードが起動するので、次のようなコマンドラインを入力する。「cmd /k 〜」は、指定したコマンドを最初に実行してからユーザー入力を待て、という指示である。「cmd /c 〜」としたり、単にバッチファイル名だけを指定すると、バッチファイルを実行後、すぐに終了してしまう。
cmd /k "<実行したいコマンドのフルパス名>"
実行したいコマンドのフルパス名に空白文字が含まれていなければ引用符は不要だが、通常は引用符で囲んでおくのがよいだろう。
引数がある場合は、コマンド名の後ろに続けて並べておけばよい。ただしコマンドプロンプトの仕様上(だと思われるが)、引用符を含むような引数は使えないことがあるので注意する。コマンド名を引用符で囲んでいると、引数部では引用符が使えないようである。
ウィザードの次の画面では、ショートカットの名前を指定する。デフォルトでは「cmd.exe」になっているが、これでは分かりづらいので、分かりやすい名前に変更しておくこと。
作成されたショートカットをダブルクリックするとコマンドプロンプトが起動し、バッチファイルで記述したコマンドが自動的に実行されてから、入力待ちになるはずだ。
上記の手順で作成したショートカットからコマンドプロンプトを起動すると、そのカレントフォルダーはcmd.exeのあった場所(デフォルトでは「C:\Windows\System32」)になる。これが不便なら別の場所に変更できる。
そのためには作成したショートカットを右クリックしてプロパティを表示させる。そして、[ショートカット]タブの[作業フォルダー]のパスを変更する。通常のコマンドプロンプトでは作業フォルダーは「%HOMEDRIVE%%HOMEPATH%」になっているので、これに変えると、ユーザーのデフォルトのフォルダー(ユーザーホーム)がカレントフォルダーになる。
画面のサイズや編集モードなどを変更したければ、上の画面の[オプション]や[レイアウト]タブで設定を変更する。スタートメニュー(スタート画面)やタスクバーに登録したければ、右クリックしてポップアップメニューから登録したり、[ファイル名を指定して実行]コマンドでプログラムフォルダーを開いて(関連記事参照)、ドラッグ&ドロップしたりする。この辺りは通常のコマンドプロンプトのカスタマイズ方法と同じである。
■この記事と関連性の高い別の記事
Copyright© Digital Advantage Corp. All Rights Reserved.