cmd.exeの起動時に、自動でコマンドを実行させたい。.bashrc
の様に。二つの方法が有る、(1) レジストリにbatファイルを登録するか、(2) cmdの起動時に/k
optionでbatファイルを呼び出すか。
(1) レジストリに登録する
元々、C#のWPFプログラムから、cmdを通してRubyスクリプトを実行しようとした所からこの方法を調べた。
cf. [C# からbatファイルを呼ぶにはSystem.Diagnostics.Processを使う]( http://c4se.hatenablog.com/entry/2012/07/28/192511 )
私はpikを使って、複数versionのRubyを管理しているので、cmdを立ち上げた後でpik use 1.9.3
を走らさなければruby
コマンドを実行できない。MRI 1.9.3だけpikの管理とは独立させればいいじやないか、と云う話ではあるが、なんだか食指が伸びなくて。
.。oO(NeoBundleInstallした丈で、使っていなかったquickrun.vimを使える様にしました。rubyのpikの為にHKEY_CURRENT_USER\Software\Microsoft\Command Processorを弄った。)
— 源泉のももんが☆さっちゃん♪ (@ne_sachirou) August 22, 2012
.。oO(以下のレジストリ(のどちらか)にAutoRunという値を作ってバッチファイルを登録しておくと、cmdの起動時にそのファイルが実行される ne.jp/asahi/hishidam… 今迄/kオプションを使っていました。)
— 源泉のももんが☆さっちゃん♪ (@ne_sachirou) August 22, 2012
regedit
か何かから、WindowsレジストリのHKEY_CURRENT_USER\Software\Microsoft\Command Processor
にAutoRun
と云うkeyで、cmdの起動時に呼び出したいbatファイルを指定する。只し問題が有る。この呼び出しに、
doskey
コマンドが書かれていると、エラーでcmdが立ち上がらない。そこで、doskey
等は以下の/k
optionを付けてショートカットを作る方法で対処する。
(2) /k optionで呼び出す
この方法は、以前少し書いた。
cf. [cmdrc.bat]( http://c4se.hatenablog.com/entry/20110804/1312440510 )
cmdは/k
optionを付けて起動すると、起動時に指定したbatファイルを自動で実行してくれる。具体的に私は、以下のコマンドでショートカットを作った。
cmd.exe /k C:\Users\ne_Sachirou\cmdrc.bat
例
cmd_profile.bat
として以下をレジストリへ登録した。ansicon
は、元々このレジストリへ登録されていたものである。消してしまって何かが動作しなくなるのは厭なので、ここへ待避した。
@echo off REM see "HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun" REM http://www.ne.jp/asahi/hishidama/home/tech/windows/cmd/cmd.html#AutoRun "C:\Users\ne_Sachirou\ansi140\x64\ansicon.exe" -p pik use 1.9.3 goto :END :END
cmdrc.bat
として/k
optionで以下を呼び出す様にショートカットを作った。
@echo off doskey alias=if "$1"=="" (doskey /macros) else ^ for /f "delims== tokens=1,*" %%i in ("$*") do^ @if "%%j" neq "" (^ doskey $*^ ) else (^ doskey /macros ^| findstr /b /c:"%%i="^ ) doskey unalias=doskey $*= doskey history=doskey /history $* doskey man=help $* doskey ls=dir /w $* doskey lsl=dir /n $* doskey cp=copy $* doskey mv=move $* doskey pwd=echo %CD% doskey cd=pushd $* doskey po=popd $* doskey logout=exit REM doskey cygwin=C:\cygwin\Cygwin.bat doskey cygwin=C:\cygwin\bin\mintty.exe - doskey setup_cygwin=C:\Users\ne_Sachirou\setup.exe -K http://cygwinports.org/ports.gpg doskey mingw=C:\MinGW\msys\1.0\msys.bat doskey vc="c:\Program Files (x86)\Microsoft Visual Studio 9.0\VC\vcvarsall.bat" cd %HOMEDRIVE%%HOMEPATH% goto :END :END