Windows コマンドに Linux 風なエイリアスを登録して永続化させる
昼間の職場が Windows ばっかりなもんで、Windows コマンドに詳しくなった。でも Linux コマンドも一度覚えるととても便利で、うっかり ls
することもしばしば。
つーわけで、コマンドプロンプトで ls
してもいいように、エイリアスを登録しようと思う。
Windows コマンドの中では「エイリアス」を「マクロ」と呼ぶみたい。自分は試してないけど、特定のコマンド名にバッチファイルを当てて複雑な処理をさせることもできる様子。今回は既存の Windows コマンドをそのまま使う形で Linux 風味に使えるようにする。
エイリアスの登録は doskey
コマンド
コマプロで doskey ls=dir
と打てば、その場限りで ls
エイリアスに dir
コマンドを割り当てられる。が、コマプロのウィンドウを閉じてしまうとこの設定は消えてしまう。
エイリアスを永続化させる方法1 : 起動時オプション
doskey /macros=(ファイル名)
で、そのファイルに書いたエイリアス群を一括で取り込める。このマクロファイルをコマプロの起動時にオプションで実行させてやるというもの。
たとえば %USERPROFILE%
(大抵は C:\Users\(ユーザ名)\
) に Macros.txt
を置き、その中身に以下のようにエイリアスを書いておく。
alias=if "$1"=="" (doskey /macros) else (doskey $*)
cat=type $*
cp=copy $*
h=doskey /history
history=doskey /history
ll=dir /ad
ls=dir /w
lv=more /E $*
mv=move $*
pwd=echo %CD%
tree=tree /f $b more
unalias=doskey $*=
そしてコマプロのショートカットで実行ファイル名の後ろに /k doskey /macrofile=%USERPROFILE%\Macros.txt
と付けてあげれば OK。
起動後から上の Macros.txt
が読み込まれるので、ls
、pwd
、cat
などが使えることになる。
エイリアスを永続化させる方法2 : レジストリに登録
上述の起動時オプションをレジストリで行うようなイメージ。上述と同じようにマクロファイルを作成しておく。
レジストリエディタを開き、HKEY_CURRENT_USER\Software\Microsoft\Command Processor\
に移動したら、文字列値 AutoRun
を作成し、その値に doskey /macrofile=%USERPROFILE%\Macros.txt
と書く。
するとシステムの再起動なしに、コマプロの再起動後にマクロ群が反映されている。
なお、cmd /?
で確認できるが、このレジストリキーは以下のいずれかで AutoRun
キーが指定されていればそれが読み込まれる様子。
HKEY_LOCAL_MACHINE\Software\Microsoft\Command Processor\AutoRun
HKEY_CURRENT_USER\Software\Microsoft\Command Processor\AutoRun
自分はこれで設定した。
その他参考
マクロ登録にパイプ等を使う場合は特殊な記号を使わないといけない。
> <--> $g >> <--> $g$g < <--> $l | <--> $b & <--> $t
また、マクロファイル内でコメントアウトしたい場合は、;=
を使うケースが多いみたい。詳しくは以下を参照。
文法や登録するエイリアスに若干の違いがあるので、自分がほしいマクロを作ろう。
いつか可能な限り Linux コマンドに似せたマクロ一覧を作りたい。
えっ、Msys なり Cygwin なり使えばいいって?そりゃそうなんだけどさw
- Windows 7でLinux コマンド "ls" を使いたいのですが、"dosk... - Yahoo!知恵袋
- Windowsのコマンドプロンプトを使いやすく(Linuxに近付ける的な意味で) - taktosの日記
- DOSKEYの便利な使い方 良く使うコマンドは短いエイリアスに登録する - gogoToRoTAN
- alias万歳。doskeyは微妙。 - 新・日々録 by TRASH BOX@Eel
- ウィンドウズDOSのaliasコマンド(Hishidama's Windows DOS alias-command)
- http://d.hatena.ne.jp/necoyama3/comment/20101018/1287404819