さて今回は、Windows 95/98上でないと意味がないバッチの技を含んでおります。
…って前回もそんなんがあったやろが!と突っ込まないで(T_T)
一応、前回に合わせて設問形式にします。それでは次、行ってみましょうか。
次の問題を解決するにはどうすればよいか?
command/zおいこら、ちょっと待て!という声が……。だけど便利なんすよ。これ
@Echo off Echo @Echo on> tmp.bat Echo Prompt myprog "$D">> tmp.bat Echo @Echo:>> tmp.bat Command/C tmp | Find/V "Prompt" | Find "myprog" > tmp2.bat Del tmp.bat tmp2これを切り取って実行すると、myprogというプログラムはないよって言われます。
@Echo off Echo Prompt md "$d"> tmp.bat Echo:>> tmp.bat Echo Prompt cd "$d">> tmp.bat Echo @Echo off> tmp2.bat Command/c tmp.bat |find /v "Prompt">> tmp2.bat Del tmp.bat Call tmp2 Del ..\tmp2.bat先の問題の応用です。LFN (Long file name)が使えるOSならではの技です。
Prompt /?とすれば、ほら。$Gとか$Bとか、何やらおいしそうなのがあるでしょう?そう。そいつを使えば万事解決!なのですよ。
@Echo off If .%2.==.. %0 %1 tmp.tmp If %1==%2 Goto Ende If not exist %1 Goto Ende If exist %2 Goto Ende Type %1 > %2 Del %1 Ren %2 %1 :Ende…たまにあるでしょう?ホームページの一番最後に小さな矢印だのポチだのがある奴。あれは多分、Ctrl-Zだと思うのです。って、うちのサイトにも一杯あったりするが、今更なので放置(ぉぃぉぃ)。まぁそういうのを消そうと思うなら、
C:\MYDOCU~1\HOMEPA~1\BAT> debug HOGEHOGE.HTM -r AX=0000 BX=0000 CX=1424 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=1660 ES=1660 SS=1660 CS=1660 IP=0100 NV UP EI PL NZ NA PO NC 1660:0100 61 DB 61 -r cx CX 1424 :1423 -w Writing 01423 bytes -q C:\MYDOCU~1\HOMEPA~1\BAT>というDOS/Windows 95,98に標準添付なコマンドだけで行う手があるのだが、こういう方法をそもそも思い付くという時点で、変態!古代種族!化石オタク!!と(しくしく……)言われかねないので、こんなバッチを復元してみました。
@Echo off Echo:--- LFN ON --- LfnFor on For %%f in ("\My Documents\*.*") Do Echo %%f Echo:--- LFN OFF --- LfnFor off For %%f in ("\My Documents\*.*") Do Echo %%f Echo:--- LFN OFF (2) --- For %%f in (\MyDocu~1\*.*) Do Echo %%fええと、カレントディレクトリ内のLFNの一覧とか、「"」を付けたら/取ったらどうなるの?、とか色々やってみて下さい。暫くの間、遊べますぞ(^^;;
#…ということで今回はここまで。次は、うぅ。いつになるんだか分かりません(^^;;