Source of Nothingness - memo : コマンドプロンプト周りの環境改善

* memo : コマンドプロンプト周りの環境改善

Cygwin無しでそれなりの環境を作る。

まずはターミナルをましにする


コマンドを揃える


その他[[この辺 http://www.microsoft.com/downloads/details.aspx?FamilyID=9d467a69-57ff-4ae7-96ee-b18c4790cffd&DisplayLang=en]]とか、探せばいろいろと。

これでコマンドへパスを通せばそれなりに使える

エイリアスを設定

ckwの起動時にバッチファイルを実行していろいろ設定する。
.bashrcとかの代わり。
ckw.exe -e init.bat

init.batの中身

@echo off
set Path=X:\usr\local\bin;%Path%
cmd.exe /K doskey /listsize=500 /macrofile=X:\doskey.txt
普段はGNUのコマンドの優先順位を下げているから設定しなおしているけど、この辺は好き好き。
doskey.txtにエイリアスの設定が書いてある。

doskey.txtの中身

xyzzy=X:\xyzzy\xyzzycli.exe $*
ll=ls -l $*
la=ls -al $*
history=doskey /history
alias=doskey /macros
date=X:\usr\local\bin\date.exe $*
echo=X:\usr\local\bin\echo.exe $*
sort=X:\usr\local\bin\sort.exe $*
clear=cls
引数をとるものにはそう明示するというところがシェルと異なる。
cmdの内部コマンドは定義を上書きしないと常に優先される。


Native Win32 ports of some GNU utilities についてくる zsh がそれなりに日本語に対応していれば、こんな面倒なことをしなくてすむのですが…(^^;

追記

最近はWSHで起動している。
何でかって言うと、ckwの閉じ方が悪いとcmd.exeのプロセスが残ってしまうから。

ckw.jsの中身

var shell = WScript.CreateObject("WScript.Shell");
var env = shell.Environment("Process");
var path = env("Path");
env("Path") = "X:\\usr\\local\\bin;" + path;

shell.Run("ckw.exe -e cmd.exe /K key.bat", 1, false);

key.batの中身

@echo off
doskey /listsize=500 /macrofile=doskey.txt

update : 2006-08-04 (Fri) 01:10:01