FC.EXE
2 つのファイルまたはファイル セットを比較し、相違点を表示

FC [/A] [/C] [/L] [/LBn] [/N] [/T] [/U] [/W] [/nnnn]
[ドライブ1:][パス1]ファイル名1 [ドライブ2:][パス2]ファイル名2
FC /B [ドライブ1:][パス1]ファイル名1 [ドライブ2:][パス2]ファイル名2

/A 相違する各部分の 1 行目と最後の行だけを表示
/B バイナリの比較を実行
/C 英字の大文字と小文字を区別しない
/L ファイルを ASCII テキストとして比較
/LBn 連続する最大不一致行を指定行数に設定
/N ASCII の比較で行番号を表示
/T タブをスペースに変換しない
/U Unicode テキスト ファイルとしてファイルを比較
/W 連続した空白 (タブとスペース) を 1 つのスペースに圧縮して比較
/nnnn 不一致発見後に確認する、一致すべき連続行数を指定
FDISK.EXE [98]
ディスクパーティションを作成

FDISK [/STATUS] /X

/STATUS パーティション情報を表示します.
/X 拡張ディスクアクセスサポートを無効にします. ディスクアクセスエラーまたはスタックオーバーフローが表示されたときに使用してください.
FIND.EXE
ファイル (複数可) 内のテキスト文字列を検索

FIND [/V] [/C] [/N] [/I] "文字列" [[ドライブ:][パス]ファイル名[...]]

/V 指定した文字列を含まない行をすべて表示
/C 指定した文字列を含む行の数だけを表示
/N 行番号を表示
/I 大文字と小文字の区別をしないで検索
"文字列" 検索する文字列を指定
[ドライブ:][パス]ファイル名
検索するファイル (複数可) を指定

パスが指定されていないときは、プロンプトで入力されたテキストまたは別のコマンドからパイプ処理で渡されたテキストを検索
FINDSTR.EXE
ファイルから文字列を検索

FINDSTR [/B] [/E] [/L] [/R] [/S] [/I] [/X] [/V] [/N] [/M] [/O] [/P] [/F:ファイル] [/C:文字列] [/G:ファイル] [/D:ディレクトリ一覧] [/A:色属性][文字列] [[ドライブ:][パス]ファイル名[ ...]]

/B 行の先頭にあるパターンを検索
/E 行の末尾にあるパターンを検索
/L 検索文字列をリテラルとして使用
/R 検索文字列を正規表現として使用
/S 現在のディレクトリとすべてのサブディレクトリから一致するファイルを検索
/I 検索するときに大文字と小文字を区別しない
/X 完全に一致する行を出力
/V 一致しない行のみを出力
/N 一致する各行の前に行番号を出力
/M ファイルに一致する行があるときに、ファイル名のみを出力
/O 一致する各行の前に文字オフセットを出力
/P 印刷不可能な文字を含むファイルをスキップ
/A:属性 2 桁の 16 進数で色属性を指定します。"color /?" を参照
/F:ファイル 指定したファイルからファイル一覧を読み取ります (/ を指定するとコンソール)
/C:文字列 指定された文字列をリテラル検索文字列として使用
/G:ファイル 指定された文字列から検索文字列を取得します (/ を指定するとコンソール)
/D:ディレクトリ セミコロンで区切られた検索されるディレクトリ文字列テキストの一覧を検索
[ドライブ:][パス]ファイル名 検索するファイルを指定します。

複数の文字列を検索する場合には、引数 /C を使わず、各文字列をスペースで区切ります。
たとえば、FINDSTR "hello there" x.y と指定した場合は、ファイル x.y で "hello"
または "there" が検索されます。
これに対して、FINDSTR /C:"hello there" x.y と指定した場合はファイル x.y で
"hello there" が検索されます。

正規表現クイック リファレンス:
. ワイルドカード: 任意の文字
* 繰り返し: ゼロ個以上の直前の文字またはクラス
^ 行位置: 行頭
$ 行位置: 行末
[class] 文字クラス: セットの任意の 1 文字
[^class] 逆クラス: セット以外の任意の 1 文字
[x-y] 範囲: 指定した範囲の任意の文字
\x エスケープ: メタ文字 x のリテラル使用
\<xyz 単語位置: 単語の先頭
xyz\> 単語位置: 単語の終わり
FOR
指定されたコマンドをファイル セットの各ファイルに対して実行

FOR %変数 IN (セット) DO コマンド [コマンドパラメータ]

%変数 置き換え可能なパラメータを指定
(セット) ファイル セットを指定します。ワイルドカードを使用可能
コマンド 各ファイルごとに実行するコマンドを指定
コマンドパラメータ
指定されたコマンドのパラメータまたはスイッチを指定

バッチ プログラムで FOR コマンドを使用するときは、%変数の代わりに、
%%変数を使用してください。変数名では大文字と小文字が区別されるため、%i と %I は異なる

コマンド拡張機能を有効にすると、次の FOR コマンドの追加形式がサポートされるようになります:

FOR /D %変数 IN (セット) DO コマンド [コマンドパラメータ]

セットがワイルドカードを含む場合は、ファイル名ではなくディレクトリ名の一致を指定

FOR /R [[ドライブ:]パス] %変数 IN (セット) DO コマンド [コマンドパラメータ]

[ドライブ:]パスから始めて、ツリーの各ディレクトリで FOR 文を実行する /R の後にディレクトリが指定されていない場合は、現在の
ディレクトリが使用される セットが単一のピリオド (.) である場合は、ディレクトリ ツリーの列挙だけを行う


FOR /L %変数 IN (開始,ステップ,終了) DO コマンド [コマンドパラメータ]

セットは、ステップの量ごとに変化する開始から終了までの数列 
たとえば、(1,1,5) は 1 2 3 4 5、(5,-1,1) は (5 4 3 2 1) という数列になる

FOR /F ["オプション"] %変数 IN (ファイル セット) DO コマンド
[コマンド パラメータ]
FOR /F ["オプション"] %変数 IN ("文字列") DO コマンド [コマンド パラメータ]
FOR /F ["オプション"] %変数 IN ('コマンド') DO コマンド [コマンド パラメータ]

または usebackq オプションの場合:

FOR /F ["オプション"] %変数 IN (ファイル セット) DO コマンド
[コマンド パラメータ]
FOR /F ["オプション"] %変数 IN ('文字列') DO コマンド [コマンド パラメータ]
FOR /F ["オプション"] %変数 IN (`コマンド`) DO コマンド [コマンド パラメータ]

ファイル名セットは、1 つ以上のファイル名です。各ファイルが開かれ、読み取られ、処理されてから、ファイル名セットの次のファイルに進みます。処理
には、ファイルの読み取り、個々のテキスト行への分割と、0 個以上のトークンへの解析が含まれます。その後、変数値を見つかったトークン文字列に設定して、for ループの本体が呼び出されます。既定では、/F は、各ファイルの各行から、空白で区切られた最初のトークンを渡します。空白行はスキップされます。既定の解析動作を変更するには、オプションの "オプション" パラメータを指定します。これは、異なる解析オプションを指定する 1 つ以上のキーワードを含む、引用符で囲まれた文字列です。キーワードは、次のとおりです:

eol=c - 行末のコメント文字を指定します (1 文字)。
skip=n - ファイルの先頭でスキップする行数を指定します。
delims=xxx - 区切り文字のセットを指定します。これは、既定の区切り文字であるスペースとタブを置き換えます。
tokens=x,y,m-n - 各繰り返しに対して、各行から for 本体に渡すトークンを指定します。これにより、追加の変数名が割り当てられます。m-n の形式は範囲で、m 番目から n 番目のトークンを指定します。tokens= 文字列の最後の文字がアスタリスクである場合は、追加の変数が割り当てられ、最後のトークンが解析された後、行に含まれている残りのテキストを受け取ります。
usebackq - 次の新しい表示形式を指定します。逆引用符で囲まれた文字列がコマンドとして実行され、一重引用符で囲まれた文字列がリテラル文字列コマンドになりファイル名セットのファイル名を二重引用符で囲めるようになります。

例を参考にしてください:

FOR /F "eol=; tokens=2,3* delims=, " %i in (myfile.txt) do @echo %i %j %k


この例は、myfile.txt の各行を解析します。セミコロンで始まる行を無視し、各行の 2 番目と 3 番目のトークンを for 本体に渡します。トークンは、カンマ
またはスペースで区切られています。for 本体の文が %i で 2 番目のトークンを、%j で 3 番目のトークンを取得し、%k で 3 番目移行のすべてのトークンを取得していることに注意してください。スペースを含むファイル名に対しては、二重引用符でファイル名を引用する必要があります。この方法で二重引用符を使うためには、usebackq オプションを使わなければなりません。使わなければ、二重引用符はリテラル文字列の定義として解釈され、解析されます。

%i は for 文で明示的に宣言され、%j と %k は tokens= オプションで暗黙的に宣言されています。tokens= 行を使って 26 個までのトークンを指定できますが、文字 'z' または 'Z' よりも高い変数を宣言することはできません。FOR 変数名は大文字と小文字を区別し、グローバルなものであり、一度にアクティブにできるのは合計 52 個までです。

また、カッコで囲んだファイル名セットを一重引用符で囲み、文字列にすることにより、即時の文字列に対する FOR /F 解析ロジックを使うこともできます。これは、ファイルからの単一入力行として処理されます。

最後に、FOR /F コマンドを使って、コマンド出力を解析することができます。カッコの中のファイル名セットを逆引用符で囲みます。この文字列は、コマンド ラインとして子 CMD.EXE に渡されます。出力はメモリにキャプチャされ、ファイルのように解析されます。

例:

FOR /F "usebackq delims==" %i IN (`set`) DO @echo %i

この例は、現在の環境の環境変数名を列挙します。

また、FOR 変数参照の置換も拡張されました。次のオプション構文を使うことができます:

%~I - すべての引用句 (") を削除して、I を展開します。
%~fI - %I を完全修飾パス名に展開します。
%~dI - %I をドライブ文字だけに展開します。
%~pI - %I をパス名だけに展開します。
%~nI - %I をファイル名だけに展開します。
%~xI - %I をファイル拡張子だけに展開します。
%~sI - 展開されたパスは短い名前だけを含みます。
%~aI - %I をファイルの属性に展開します。
%~tI - %I ファイルの日付/時刻に展開します。
%~zI - %I ファイルのサイズに展開します。
%~$PATH:I - PATH 環境変数に指定されているディレクトリを検索し、最初に見つかった完全修飾名に %I を展開します。
環境変数名が定義されていない場合、または検索してもファイルが見つからなかった場合は、この修飾子を指定すると空の文字列に展開されます。

修飾子を組み合わせて、複合結果を得ることもできます:

%~dpI - %I をドライブ文字とパスだけに展開します。
%~nxI - %I をファイル名と拡張子だけに展開します。
%~fsI - %I を完全なパスと短い名前だけに展開します。
%~dp$PATH:i - PATH 環境変数に指定されているディレクトリを
検索して %I を探し、最初に見つかったファイル
のドライブ文字とパスだけに展開します。
%~ftzaI - %I を DIR コマンドの出力行のように展開します。

上の例の %I と PATH は、ほかの有効な値で置き換えることができます。%~ 構文は、有効な FOR 変数名によって区切られます。%I のような大文字の変数を使うと読み取りやすく、大文字と小文字を区別しない修飾子との混乱を避けることができます。
FORMAT
ディスクをフォーマットする

FORMAT ボリューム: [/FS:ファイルシステム] [/V:ラベル] [/Q] [/A:サイズ] [/C][/X]
FORMAT ボリューム: [/V:ラベル] [/Q] [/F:サイズ]
FORMAT ボリューム: [/V:ラベル] [/Q] [/T:トラック数 /N:セクタ数]
FORMAT ボリューム: [/V:ラベル] [/Q] [/1] [/4]
FORMAT ボリューム: [/Q] [/1] [/4] [/8]

ボリューム ドライブ文字 (文字の後にはコロンを付ける)、マウントポイント、ボリューム名を指定
/FS:ファイルシステム ファイルシステムにはファイル システムの種類を指定します(FAT、FAT32、または NTFS)。
/V:ラベル ボリューム ラベルを指定します。
/Q クイック フォーマットを実行します。
/C 新しいボリューム上に作成されたファイルは、既定では、圧縮されます。
/X 必要であれば、最初にボリュームを強制的にマウントを解除します。ボリュームへ開かれているすべてのハンドルは、無効になります。
/A:サイズ 既定のアロケーション ユニット サイズを無効にします。一般的には、既定の設定を使用してください。
NTFS は、512、1024、2048、4096、8192、16K、32K、64K を
サポートします。
FAT は、512、1024、2048、4096、8192、16K、32K、64K を
サポートします
(セクタ サイズが 512 バイトよりも大きい場合は 128K、 256K)。
FAT32 は、512、1024、2048、4096、8192、16K、32K、64K を
サポートします
(セクタ サイズが 512 バイトよりも大きい場合は 128K、 256K)。

FAT と FAT32 ファイル システムは、下記のボリュームのクラスタ数の制限に従います:

FAT: クラスタ数 <= 65526
FAT32: 65526 < クラスタ数 < 268435446

指定されたクラスタ サイズを使用して、上記の要件に一致しないと判断した場合、フォーマットの処理を直ちに停止

NTFS 圧縮は、4096 より大きいアロケーション ユニット サイズに対してはサポートされない
/F:サイズ フォーマットするディスクのサイズ (160、180、320、360、640、720、1.2、1.23、1.44、2.88、または 20.8) を指定
/T:トラック数 ディスクの片面あたりのトラック数を指定します。
/N:セクタ数 トラックあたりのセクタ数を指定します。
/1 フロッピー ディスクの最初の面だけをフォーマットします。
/4 5.25 インチ 360K フロッピー ディスクを高密度ドライブでフォーマット
/8 トラックあたり 8 セクタでフォーマット
FTP.EXE
ネットワーク経由のファイル転送を行う

FTP.EXE[-f][-n][-i][-d][-s][-a][-A][-W][相手先ホスト]

-f:サーバーからのメッセージを表示しない
-n自動ログインを行わない:
-i:複数ファイル転送(MGET,MPUT)時、確認プロンプトを表示しない
-d:デバッグモードで実行
-s:"ファイル名"FTPコマンドをファイルから読み込み実行する
-a:データコネクションをするときローカルインターフェースを用いる
-A:anonymousモードでログイン
-W:"サイズ"転送バッファのサイズを指定(標準4096)

コマンド 機能
! シェルを一時的に起動
? ヘルプを表示
append 既存ローカルファイルにリモートファイルの内容を追加
ascii 転送モードを ASCIIモードに変更
bell コマンド終了時に Beep
binary 転送モードを BINARYモードに変更
bye FTPセッションを切断し、FTPを終了
cd リモートのカレントディレクトリを変更
close FTPセッションを切断
delete リモートファイルを削除
debug デバッグモードきのうの切り替え(トグル)
dir リモートディレクトリのファイル一覧(詳細)
disconnect FTPセッションを切断
get リモートファイルをローカルに転送
glob ファイル名のglobbingを切り替える(トグル)
ワイルドカードをワイルドカードとして認識しなくなるので
ワイルドカード文字を含むファイルも転送可能となる
hash 転送中のハッシュマーク'#'の表示を切り替える(トグル)
オンにすると2048転送毎に表示され転送状況を確認できる
help ヘルプを表示
lcd ローカルのカレントディレクトリを変更
literal 引数の内容を無加工で送信
ls リモートディレクトリのファイル一覧(簡易)
mdelete 複数ファイルの削除
mdir リモートディレクトリ(複数可)の一覧(詳細)
mget リモートファイル(複数)をローカルに転送
mkdir リモートにディレクトリを作成
mls リモートディレクトリ(複数可)の一覧(簡易)
mput 複数のファイルを転送
open リモートに接続(ホスト名 [ポート番号]を指定)
prompt 複数ファイル転送時、確認の有無を切り替え
put ファイルを転送
pwd リモートのカレントディレクトリ名を表示
quit FTPセッションを切断し、FTPを終了
quote 引数の内容を無加工で送信
recv リモートファイルをローカルに転送
remotehelp リモートのヘルプを参照
rename リモートのファイル名を変更
rmdir リモートのディレクトリを削除
send ファイルを転送
status 現在の接続の状態を表示
trace パケットのトレース機能を切り替える(トグル)
オンの場合パケットの経路を表示
type ファイル転送モード(ASCII BINARY)を指定
user 新規ユーザー情報を送信
verbose 応答表示モードを切り替える(トグル)
オンの状態でFTPサーバーの応答メッセージや転送後
の速度情報を表示
GOTO
バッチ プログラム内の、ラベルで指定されている行へ制御を移動

GOTO ラベル

ラベル バッチ プログラムでラベルとして使用するテキスト文字列を指定

ラベルの先頭には : (コロン) を指定し、ラベルだけを単独で 1 行に入力する

コマンド拡張機能を有効にすると、GOTO は次のように変更されます:

GOTO コマンドにターゲット ラベルとして :EOF を指定し、現在のバッチ スクリプト ファイルの最後に制御を移すことができるようになります
ラベルを定義しないでバッチ スクリプト ファイルを終了するには、この方法が簡単です この機能を実用化する CALL コマンドの拡張機能の説明については、CALL /? と入力
IF
バッチ プログラム中で条件処理を実行

IF [NOT] ERRORLEVEL 番号 コマンド
IF [NOT] 文字列1==文字列2 コマンド
IF [NOT] EXIST ファイル名 コマンド

NOT 条件が偽の場合にだけ、Windowsがコマンドを実行することを指定

ERRORLEVEL 番号 最後のプログラムの実行で指定された番号以上の終了コードが返されたときに、条件が真になるように指定

文字列1==文字列2 テキスト文字列が一致するときに条件が真になるように指定

EXIST ファイル名 指定したファイル名が存在するときに条件が真になるように指定

コマンド 条件が真のときに実行するコマンドを指定します。コマンドに続けて、ELSE キーワードの後、指定した条件が偽の場合に実行される ELSE コマンドを指定することがでる

ELSE 節は、IF の後のコマンドと同じ行に置く
例:

IF EXIST filename. (
del filename.
) ELSE (
echo filename. missing.
)

del コマンドは、改行で終了しなければならないため、次の例は、正しく動作しない

IF EXIST filename. del filename. ELSE echo filename. missing

ELSE コマンドは、IF コマンドの終わりと同じ行で始まらなければならないため、次の例は正しく動作しない

IF EXIST filename. del filename.
ELSE echo filename. missing

次の例のように、すべてのコマンドを 1 行にすれば正しく動作する

IF EXIST filename. (del filename.) ELSE echo filename. missing

コマンド拡張機能を有効にすると、IF は次のように変更されます:

IF [/I] 文字列1 比較演算子 文字列2 コマンド
IF CMDEXTVERSION 番号 コマンド
IF DEFINED 変数 コマンド

比較演算子は、次のいずれかです:

EQU - 等しい
NEQ - 等しくない
LSS - より小さい
LEQ - 以下
GTR - より大きい
GEQ - 以上

/I スイッチを指定すると、文字列は、大文字と小文字を区別せずに比較される /I スイッチは、IF の 文字列1==文字列2 形式で使うこともでる
この比較は汎用であり、文字列1 と 文字列2 が両方とも数字だけを含む場合は、文字列が数値に変換され、数値の比較が行われる

CMDEXTVERSION 条件は ERRORLEVEL と同様に動作しますが、コマンド拡張機能に関連付けられている内部バージョン番号との比較を行います。最初のバージョンは 1 です。コマンド拡張機能に重要な拡張が追加された場合は、値が 1 大きくなります。コマンド拡張機能が無効である場合は、CMDEXTVERSION は条件は常に偽

DEFINED 条件は EXISTS と同様に動作しますが、環境変数名を受け取って、環境変数が定義されている場合は真を返す

%ERRORLEVEL% は、ERRORLEVEL の現在の値の文字列表記に展開されます。ただし、ERRORLEVEL という名前の環境変数が既に定義されている場合は、その環境変数の値が取得されます。プログラム実行後、次の例が ERRORLEVEL の使い方を説明してます

goto answer%ERRORLEVEL%
:answer0
echo Program had return code 0
:answer1
echo Program had return code 1

また、上の数値比較を使うこともできます:

IF %ERRORLEVEL% LEQ 1 goto okay

%CMDCMDLINE% は、CMD.EXE が処理する前の、CMD.EXE に渡されたオリジナルのコマンド ラインに展開されます。ただし、CMDCMDLINE という名前の環境変数が既に定義されている場合は、その環境変数の値が取得される

%CMDEXTVERSION% は、CMDEXTVERSION の現在の値の文字列表記に展開される
ただし、CMDEXTVERSION という名前の環境変数が既に定義されている場合は、その環境変数の値が取得される
IPCONFIG.EXE
IPアドレスを確認する

IPCONFIG[/all][ /release アダプタ番号][ /renew アダプタ番号][/flushdns][/registerdns][/showclassid アダプタ番号][/setclassid アダプタ番号]

JP.BAT
コードページを日本語に切り替えるバッチファイル

@echo off
rem Change the active CODE PAGE to 932 (Japan)
CHCP 932
LABEL.EXE
ボリュームラベルを変更

LABEL [ドライブ:][ラベル]
LABEL [/MP] [ボリューム] [ラベル]

ドライブ: ドライブのドライブ文字を指定
ラベル ボリュームのラベルを指定
/MP マウント ポイントまたはボリューム名として処理
ボリュームを指定
ボリューム ドライブ文字 (文字の後にはコロンを付ける)、マウントポイント、ボリューム名を指定
指定されている場合は、/MP フラグは不要