[ PC系セットアップ覚書 Top]

PC系セットアップ覚書

2011年まで「俺的な非 UN*X 環境をめざして」という題でしたが、 「UNIX系」と「非UNIX系」の区別がだんだん難しくなってきましたので、 あれこれ区別しないことにしました(^_^;


[前] 今宵は眠らせないよ‥ 2008/11a

バッチファイルをハックせよ 2008/10e

「もしファイル FA と FB が両方あったら RA を、そうでないときは RB を実行」 という文をバッチファイルで書こうとしたときにこう思いました: 「これはバッチファイルで書くより、どっからか sh.exe 等を持ってくる方が早いな」

ということで早速 UnxUtilsというのを 持ってきます。5月に同じようなことをしたときは Unix-like Tools というパッケージを 使いましたので、今回は別なのにしてみました。 パッケージを展開すると、sh.exe と、標準的なコマンド群が それぞれ別のディレクトリに置かれていて、まあ、気持ちはわかるのですが、 面倒なので全部同じディレクトリにブチ込みます。 それでまず以下のように書いた hoge.sh というファイルを作ります。

if test -f FA -a -f FB
then
    RA
else
    RB
fi
そしてあとはこの hoge.sh というファイルを呼び出すバッチファイルを こんな感じ:
@echo off
set PATH=C:\コマンド群をブチ込んだディレクトリ名;%PATH%
test -f hoge.sh
if errorlevel 1 goto :end
  sh.exe hoge.sh
:end
こんな感じで書いてやったところ、おお! あっという間に書けた!! やっぱ sh を入れて正解でしたね私には。 ‥‥つか、私には sh.exe よりも test コマンドが重要だったのかもしれません。 上にあげた sh スクリプトと同じことって、test コマンドさえ使えば バッチファイルでも実は簡単に書けてしまえますからね(‥ということに、 このページを書きながら気付きました)。 はじめて test コマンドの存在を知ったとき「test?! 何でそんな、 試作段階の自作プログラムの名前として誰もが使いたがりそうな 名前のコマンドを標準的なコマンドとして用意するかなー。バカじゃね?!」と 思ってしまった、遠い(?)昔のことを思い出します。



[次] ブラックアウト 2008/10d