Skip to content

コマンドプロンプトの開始時に定型処理を自動実行するには

Windows 環境でコマンドプロンプトを開く際、定型処理を自動実行させたい場合があります。例えば、以下のようなケースが考えられます。

  • 自動的に特定のディレクトリに移動させたい
  • 自動的にプロンプトをカスタマイズしたい

これを実現するには 2 種類の方法があります。

  1. レジストリを利用する
  2. ショートカットに起動オプションを付与する

2 つの方法の違い

2 つの方法には以下のような違いがあります。

  1. レジストリを利用する方法
    • どのような方法でコマンドプロンプト(cmd.exe)を起動しても、必ず「定型処理」が実行される。例えば「今回だけは定型処理を実行させたくない」といったことは出来ない。
  2. ショートカットに起動オプションを付与する
    • ショートカットを複数、用意することで「オプションを使い分ける」ことが可能。但し、例えば「ファイル名を指定して実行」から直接、cmd.exe を実行した場合等にはオプションが適用されない。

レジストリを利用する

レジストリの [HKEY_CURRENT_USER\Software\Microsoft\Command Processor] というキーに AutoRun という文字列型の値を作り、実行したいコマンドなり、バッチファイルなりを指定します。"AutoRun 値を追加する処理" をレジストリパッチ(.reg ファイル)としてエクスポートすると、例えば以下のような内容になります。

1
2
3
4
Windows Registry Editor Version 5.00

[HKEY_CURRENT_USER\Software\Microsoft\Command Processor]
"AutoRun"="C:\\bin\\SimplePrompt.bat"

今回の例では C:\bin\SimplePrompt.bat の内容を下記としました。「エコーバックをオフにしつつ、プロンプトを単純化する」という、簡単な内容です。

1
2
@echo off
prompt $G$S

ショートカットに起動オプションを付与する

cmd.exe へのショートカットを作成し、そのプロパティ中のリンク先に起動オプションを付与します。cmd.exe に起動オプションを指定するには /k オプションを指定した後、コマンドを指定します。Windows のコマンドプロンプトでは一行中に複数のコマンドを指定するには「&」でコマンドを連結します。以下は「プロンプトを単純化しつつ、カレントディレクトリを Visual Studio のプロジェクトディレクトリに変更する」というサンプルです。

1
C:\Windows\System32\cmd.exe /k "prompt $G$S & cd C:\Users\foobar\Documents\Visual Studio 2013\Projects"

作成したショートカットはタスクトレイにピン留めしておくと便利です。