2006-07-14

Unix 系 CLI 使いが一時的に Windows を使ううえで必要以上にイライラしないための最低限のバッチ7+1本

いやね、私も「バッチファイル? だっせぇ」と思いました。しかしこのほんのわずかな工夫が心に平和をもたらします。alias があればもうちょっと簡単なんですけどねぇ…。

Kanegon's Web Page に alias.exe があり、これを利用することでも似たようなことができます。ただまぁ、あくまで一時的な利用を前提にするのであればこんなもんでもいいかなと思っています。

前提

  • これは普段 Windows を使っていない人がふいに Windows に向かうことになった場合の最低限の対策です。
  • 普段 Windows を使っているのであれば、Windows の流儀に染まるなり cygwin でゴリゴリ押すなり各自工夫してください。

使い方

以下のバッチファイルの内容を該当する名前のファイルにコピペし、パスの通ったフォルダに置くだけ。コマンドラインオプションはもっと本格的に解釈してもいいんでしょうが、自分が困らなければいいという程度のものなので、凝ったことは何もしてません。右から左へほとんどスルーしてます。

touch.bat は fsutil コマンドに依存しているので XP/2003 以降でないと使えませんし、本来 touch の Windows 版であるところの attrib コマンドとは一切無関係に、ゼロバイトのファイルを作成するために用意しています。これは私がとりあえずファイルだけ作って配置を考えるとか、ちょこちょこそういう作業をするために用意したもので、そういう需要のない方には必要ありません。

問題はエディタですが、vim なり emacs なりをこのバッチを収めるのと同じディレクトリに置いちゃうのがいいかなと思ってます。私の場合であれば、

emacs.bat

@echo off
start ng %1

と ng.exe, ng.ini を用意します。(別に Emacs そのものでも xyzzy でもいいんですが、あくまで一時利用ですし。)

効果

たったこんだけですが、

grep function * | less

とか打ってもエラーにならないのでかなりストレスを軽減できるようになりました。more にバッファ内を検索する機能がないのはまぁ諦めましょう。

バッチファイル

cp.bat

@echo off
COPY %1 %2

grep.bat

オプションは自分の好みで調整してください。

@echo off
find /I /N "%1" %2

find は検索したい文字列を常にクォートしなくちゃいけないのがハマりやすいところ。

less.bat

lv 使いは当然 lv.bat にしてください。

@echo off
more %1

ls.bat

@echo off
dir

mv.bat

@echo off
move %1 %2

rm.bat

@echo off
del %1

touch.bat

echo off
:
: require Windows XP/2003 or later
:
fsutil file createnew %1 0

あと

@IT:Windows TIPS – Hint:whichコマンドを作る

こんなんとかあってもいいかもね。

About

例によって個人のなんちゃらです