バッチプログラム
●バッチファイル
プロンプト上で入力する一連のコマンドを記述したテキストファイルで、拡張子を.batまたは、.cmdとすることで実行ができる。
※メモ帳等で作成する場合は、文字コードをANSIにすること。デフォルトはUTF-8になっており実行時に文字化けが発生します。
UTF-8で記述したい場合は、chcp 65001で文字コードの変更をします。
if %a% equ 0 echo aは0です if %a%==1 ( echo aは1です ) else if %a%==2 ( echo aは2です ) else ( echo aは1、2以外です ) if not %str%==abc echo abcでない if /i %str%==a echo aまたはAです if not exist test.txt echo testファイルが見つかりません if ERRORLEVEL 1 echo コマンドの終了コードが1以上です
rem 0から+1ずつ9までループ for /l %%a in (0, 1, 9) do ( echo %%a ) rem 拡張子.txtファイルを全て表示 for %%f in (*.txt) do echo %%f rem サブフォルダを含む拡張子.txtファイルを全て表示 for /r %%f in (*.txt) do echo %%f rem aで始まるフォルダを全て表示 for /d %%d in (a*) do echo %%d rem TXTファイルの中身を1行ずつ表示 for /f %%a in (input.txt) do echo %%a rem TXTファイルの中身を表示。#で始まる行を無視 for /f "eol=#" %%a in (input.txt) do echo %%a rem CSVファイルの中身を表示。先頭行を無視、カンマ区切り、項目1と2 for /f "skip=1 delims=, tokens=1,2" %%a in (input.csv) do echo %%a / %%b rem コマンドの実行結果を表示 for /f %%a in ('dir /b') do echo %%a rem 変数の遅延展開 setlocal enabledelayedexpansion set count=0 for /f %%a in (input.txt) do ( set line=%%a echo !line!>>output.txt set /a count+=1 echo !count! ) endlocal
goto label :label
call test.bat arg call :label arg :label echo %1 exit /b 1 errorlevelに1を返す
rem | コメント行として扱われる。 |
@echo off | 以降のコマンドは全て非表示になります。 |
echo | 画面に出力する。 |
pause | キー入力待ち状態にする。 |
choice | 指定したキー入力を判定する。デフォルトはY,N、/cオプションでキー指定。値はerrorlevelに格納。 |
set | 変数を設定する。環境変数の一覧表示。/aオプションで計算する。/pオプションでキー入力を要求する。 |
setlocal | 同一バッチファイル内だけで有効な変数を設定する。 |
call | バッチファイルの呼び出し。サブルーチンの呼び出し。 |
start | バッチファイルを呼び出し終了を待たずに次のコマンドへ移ります。 |
cls | 画面表示をクリア。 |
color | 画面の背景と文字の色を変更。 |
cd | カレントディレクトリの変更。 |
copy | ファイルをコピー。 |
xcopy | より高度なファイルコピー。 |
replace | バックアップ用コピー。 |
del | ファイル・フォルダを削除。 |
dir | ファイル・フォルダ一覧を表示。 |
fc | ファイルの内容を行単位で比較。 |
comp | ファイルの内容を文字単位で比較。 |
find | ファイル内の文字列を検索。 |
findstr | より高度なファイル内の文字列を検索。 |
md | フォルダ作成。 |
move | ファイル・フォルダを移動。 |
rename | ファイル・フォルダ名を変更。 |
rd | フォルダを削除。 |
sort | ファイルの内容を並べ替え。ファイル名、フォルダ名を並べ替え。 |
shift | 引数をずらして格納しなおす。 |
title | コマンドプロンプト画面のタイトル表示を変更。 |
tree | フォルダ・ファイル構成をツリー形式で表示。 |
type | ファイル内容を表示。 |
more | ファイルの内容を一画面分ずつ表示。 |