目次
if 文
比較演算子
==
:文字列の比較equ
:等号neq
:不等号gtr
:大なりlss
:小なりgeq
:大なりイコールleq
:小なりイコール
使用例
if "%response%"=="OK" (
echo That's OK!
)
Code language: DOS .bat (dos)
参考:
バッチファイルで if 文をトラブルなく使う – Qiita
IF – バッチファイルで条件分岐を使う | JavaDrive
if – 条件分岐 | 知識ゼロからの Windows バッチファイル超入門
バッチファイルで文字列を比較する | 知識ゼロからの Windows バッチファイル超入門
バッチファイルで、空の変数の判定処理 | system2222
論理和 (or)
参考:
バッチファイルで if 文条件分岐 or に関する質疑 – teratail
ファイルの存在を判定する (if exist)
if exist
の後にファイルのパス及びコマンドを続けて記述する。
if exist "path\to\file" ( @echo ファイルあり ) else ( @echo ファイルなし )
参考:
ファイルが存在している場合にのみコマンドを実行する | 知識ゼロからの Windows バッチファイル超入門
ファイルの存在を確認する | ikuyani knowledge
フォルダの存在を確認する | ikuyani knowledge
バッチでフォルダやファイルの存在チェックを行う方法/if exist 文の活用 | Rainbow Engine
ファイル有無を確認するバッチファイル備忘録 | SE からの脱出日記
コマンドのエラーを判定する (errorlevel)
type hoge.txt if %errorlevel% equ 0 ( @echo OK!! ) else ( @echo Error!! )
参考:
errorlevel – 終了コードを取得する | 知識ゼロからの Windows バッチファイル超入門
フォルダが空かどうか判定する
dir
コマンドと find
コマンドを組み合わせ、エラーレベルで判定する。
dir /b/a "path\to\dir" | find /v "" > nul if %errorlevel% equ 0 ( echo Not Empty! ) else ( echo Empty! )
参考:
Check folder is empty using batch command? – Stack Overflow
How to detect if folder is not empty? – Stack Overflow
check for anything in folder – Stack Overflow
How to find all empty directories using batch – Super User
How to loop though sub folder to check if folder is empty? – Server Fault
How to check the output of a command is empty in bat file? – Super User
batch script to move x number of files to empty folders – Super User
for 文
set /a i=0
for %%a in (%*) do (
set /a i+=1
)
echo %i% args passed.
Code language: DOS .bat (dos)
参考:
バッチファイルの for / if 文の中で変数使う際につまづくこと – Qiita
FOR – バッチファイルで繰り返し処理を使う | JavaDrive
for – バッチファイルで繰り返し処理をする | 知識ゼロからの Windows バッチファイル超入門
バッチファイルでループ処理する | 知識ゼロからの Windows バッチファイル超入門
意外と知られていないけど、知っていると便利な FOR コマンド | Web / DB プログラミング徹底解説
遅延変数
遅延変数を有効にするには、setlocal
コマンドに enabledelayedexpansion
を指定する。
setlocal enabledelayedexpansion
Code language: DOS .bat (dos)
遅延変数として参照するには、感嘆符で変数名を囲む。
set /a i=0
for %%f in (%*) do (
set /a i+=1
echo !i!: %%~nxf
)
Code language: DOS .bat (dos)
参考:
遅延変数のサンプル if 文/for 文の注意点 | ITSakura
代入時の注意 (ENABLEDELAYEDEXPANSION) | FreeBSD あれこれ
setlocal | Microsoft Docs [公式]
コマンドの実行結果を変数に入れる
参考:
cmd.exe で Bash のバックティックのようにコマンドの出力を埋め込む – Qiita
バッチファイルでコマンドの実行結果を変数に格納する | まくまくノート
コマンドの実行結果を変数にセットする | コマンドプロンプトの予感
ラベルを使う (goto)
参考: