DOS窓スキルアップ講座

バッチファイルで使えるコマンド
バッチファイルで使えるコマンドを解説しています。

シリーズ第1作

2作目以降は気が向いたら(笑)

@echo off
 echo offは、以後の処理メッセージをいちいち画面に表示しないための命令。
 これを
echo onとすると、いちいち表示してうるさいので、通常はoffにしておく。
 batファイル作成時のデバッグのために、onを使うこともある。
 また、行頭の
@は、その一行だけecho offとするための命令。
 echo offが実行されるまでは、初期値がecho onであるため、それをうち消す目的で使用する。

set DefFloppyDrive1=A:
set DefFloppyDrive1_L=a:
set DefFloppyDrive2=B:
set DefFloppyDrive2_L=b:
 setは、続く変数(DefFloppyDrive…)に値(A:など)を代入する命令。
 上の例では、「DefFloppyDrive1」に「A:」という文字が代入された。

set DefFloppyDrive=%1
 代入する値が「%1」となっているが、これはbootdisk.batを実行するときの引数を表す。
 bootdisk a:
 とコマンドラインに入力すると、引数「
%1」は「a:」になる。

cls
 clsは、画面全体を初期化する命令。不要なメッセージなどが画面にあるとじゃまなので、削除する目的で使う。

:CHECK
 :」で始まるのがラベル。GOTO命令の行き先として使います。
if not exist EBD\NUL goto NODIR
 かなり高度な技です。
 3つの命令の意味は、
if「もしも」、exist「存在するなら」、goto「〜へ行きなさい」で、
 存在を問われているのは「EBD\NUL」というファイルで、
 行き先は「NODIR」という名前のラベル(下の方にあります)です。
 「not」はexistを否定しているので、全体を訳しますと、
 「もしもEBD\NULが存在しなかったら、NODIRラベルに行きなさい」になります。
 EBD\NULが存在していたら、次行を続けて実行します。
 ここで注意したいのが、EBD\NULです。こんな名前のファイルは、存在しないし、作ることも不可能です。
 本来なら\の後ろのNULというのはフォルダまたはファイル名を示すはずですが、NULという文字は
 予約文字で、EBDというフォルダを作ると自動的に作成されるデバイスなのです。
 つまりここではEBDというフォルダが存在しているかどうかをEBD\NULというデバイスの有無で判断して
 いるのです。

for %%a in (*.*) do fc /b c:\dir1\*.* c:\dir2\*.* > dif.txt
 c:\dir1とc:\dir2にあるファイルの中身を順番にコンペアする。
 ファイルの数はいくつでも良いが、両側にないとチェックは出来ない。