バッチファイル

%0〜%9%0がプログラム名、以降引数。""の区切りを含む
%~0〜%~9%~0がプログラム名、以降引数。""の区切りを除く

表示制御

  • コマンドを非表示(ECHO OFFは表示)
    ECHO OFF
  • コマンドを非表示(@ECHO OFFも非表示)
    @ECHO OFF
  • コマンドを表示
    ECHO ON
  • 文字列を表示
    ECHO 文字列

ファイル制御

  • ファイルのコピー
    COPY ファイル名1 ファイル名2
  • ファイルの削除
    DEL ファイル名
  • カレントディレクトリの移動
    CD フォルダ名
  • ディレクトリの作成
    MD フォルダ名
  • ディレクトリの削除
    RD フォルダ名
    

キー入力

  • キー入力待ち
    PAUSE

分岐

  • 条件分岐
    GOTO はそれに続くラベル名にジャンプする。
    ラベル名は先頭行にコロン:に続く文字列で指定する。
    if "%~1"=="option" then goto LABEL1
    else goto LABEL2

ループ制御

FOR カウンタ

for /L %%変数名 in (初期値,増分,終了値) do コマンド
変数%%Iに初期値から終了値まで増分ずつ数値を増加させる。。
CやPerl、PHPのforループとは増分と終了値が逆なので注意。
@echo off
echo c:\のディレクトリ一覧
for /L %%I in (1,2,10) do echo %%I
実行結果
1
3
5
7
9
  • 増分にマイナスの値を入れれば減少していくが、開始値より終了値を小さくする必要があるため注意が必要。
    @echo off
    echo c:\のディレクトリ一覧
    for /L %%I in (10,-2,1) do echo %%I
    実行結果
    10
    8
    6
    4
    2

FOR リストの取得

for %%変数名 in (値のリスト1 値のリスト2 値のリスト3) do コマンド
値のリストを順に変数に代入する。
@echo off
for %%I in (aa bb cc) do echo %%I
実行結果
aa
bb
cc

FOR ワイルドカードによるファイルリストの取得

for %%変数名 in (ワイルドカードのリスト1 ワイルドカードのリスト2 ワイルドカードのリスト3) do コマンド
ワイルドカードで指定したファイルパスのリストからファイルを順に変数に代入する。
パスを指定するとそのフォルダ内のファイルのリスト、
省略するとカレントディレクトリのファイルのリストを取得する。
ファイルのみでディレクトリ(フォルダ)は取得できない。
for %%F in (*.txt *.log) do copy /A join.txt + %%F join.txt
  • ディレクトリを取得する場合は ーd オプションをつける。
    @echo off
    echo c:\のディレクトリ一覧
    for /d %%D in (c:\*) do echo 	%%D

GOTO 汎用ループ

@echo off
set /a I=1

:LOOP
	if "%I%" == "11" goto LOOPEND
	echo %I%
	set /a I=I+1
	goto LOOP
:LOOPEND

トップ   編集 凍結 差分 バックアップ 添付 複製 名前変更 リロード   新規新規下位 一覧 単語検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2008-09-13 (土) 15:08:38 (3261d)