読者です 読者をやめる 読者になる 読者になる

らくがきちょう

なんとなく

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

Windows

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

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

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

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

2 つの方法の違い

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

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

レジストリを利用する

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

Windows Registry Editor Version 5.00

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

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

@echo off
prompt $G$S

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

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

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

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