if 文

比較演算子
  • ==文字列の比較
  • equ等号
  • neq不等号
  • gtr大なり
  • lss小なり
  • geq大なりイコール
  • leq小なりイコール
使用例
if "%response%"=="OK" (
    echo That's OK!
)Code language: DOS .bat (dos)

参考:

バッチファイルで if 文をトラブルなく使う – Qiita

IF – バッチファイルで条件分岐を使う | JavaDrive

バッチファイルの if コマンド解説 – Qiita

if 文のサンプル | ITSakura

if 文 | 山本ワールド

if – 条件分岐 | 知識ゼロからの Windows バッチファイル超入門

バッチファイルで文字列を比較する | 知識ゼロからの Windows バッチファイル超入門

if | so-zou.jp

if | Windows コマンド虎の巻

if | Programming Field

バッチで変数の空チェック – Qiita

バッチファイルで、空の変数の判定処理 | system2222

バッチファイルの if で空文字を比較する | DT日記

if | Microsoft Docs [公式]

論理和 (or)

参考:

バッチファイルで if 文条件分岐 or に関する質疑 – teratail

ファイルの存在を判定する (if exist)

if exist の後にファイルのパス及びコマンドを続けて記述する。

if exist "path\to\file" (
    echo File Found!
) else (
    echo File Not Found!
)Code language: DOS .bat (dos)

参考:

指定したファイルが存在するかどうか判定する | ぱそまき

ファイルが存在している場合にのみコマンドを実行する | 知識ゼロからの Windows バッチファイル超入門

ファイルの存在を確認する | ikuyani knowledge

フォルダの存在を確認する | ikuyani knowledge

バッチでフォルダやファイルの存在チェックを行う方法/if exist 文の活用 | Rainbow Engine

ファイル有無を確認するバッチファイル備忘録 | SE からの脱出日記

コマンドのエラーを判定する (errorlevel)

type hoge.txt
if %errorlevel% equ 0 (
    echo OK!!
) else (
    echo Error!!
)Code language: DOS .bat (dos)

参考:

errorlevel – 終了コードを取得する | 知識ゼロからの Windows バッチファイル超入門

バッチファイルでエラーレベルが取れない/遅延環境変数の展開 | マコトのおもちゃ箱

よくハマるバッチスクリプト/遅延環境変数 | パブリックソフトウエア株式会社

for 文内の errorlevel 取得について – teratail

フォルダが空かどうか判定する

dir コマンドと find コマンドを組み合わせ、エラーレベルで判定する。

dir /b /a "path\to\dir" | find /v "" > nul
if %errorlevel% equ 0 (
    echo Not Empty!
) else (
    echo Empty!
)Code language: DOS .bat (dos)

ドキュメント:

dir | Microsoft Learn [公式]

find | Microsoft Learn [公式]

参考:

フォルダが空かどうか | Heartache Reborn

find | Windows コマンド虎の巻

dir | Windows コマンド虎の巻

dir | Windows コマンド集

フォルダ内に何もないかチェック – Yahoo! 知恵袋

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 | Microsoft Learn [公式]

参考:

バッチファイルの for コマンド解説 – Qiita

バッチファイルの for / if 文の中で変数使う際につまづくこと – Qiita

FOR – バッチファイルで繰り返し処理を使う | JavaDrive

for – バッチファイルで繰り返し処理をする | 知識ゼロからの Windows バッチファイル超入門

バッチファイルでループ処理する | 知識ゼロからの Windows バッチファイル超入門

繰り返し処理をする | コマンドプロンプトの予感

意外と知られていないけど、知っていると便利な FOR コマンド | Web / DB プログラミング徹底解説

for コマンド – 繰り返し処理を行う | @IT

for コマンドでワイルドカード指定した出力順について – Microsoft TechNet フォーラム

遅延変数

遅延変数を有効にするには、setlocal コマンドに enabledelayedexpansion を指定する。

setlocal enabledelayedexpansionCode language: DOS .bat (dos)

遅延変数として参照するには、感嘆符で変数名を囲む。

set /a i=0
for %%f in (%*) do (
    set /a i+=1
    echo !i!: %%~nxf
)Code language: DOS .bat (dos)

参考:

バッチファイル界の魔境「遅延環境変数」に挑む- Qiita

遅延変数のサンプル if 文/for 文の注意点 | ITSakura

代入時の注意 (ENABLEDELAYEDEXPANSION) | FreeBSD あれこれ

setlocal | Microsoft Docs [公式]

コマンドの実行結果を変数に入れる

こちらのページを参照

参考:

コマンド実行結果を環境変数に代入する方法 – Qiita

cmd.exe で Bash のバックティックのようにコマンドの出力を埋め込む – Qiita

バッチファイルでコマンドの実行結果を変数に格納する | まくまくノート

コマンドの実行結果を変数にセットする | コマンドプロンプトの予感

バッチファイルでコマンド出力展開 | 幸熱日記

ラベルを使う (goto)

参考:

無限ループする | コマンドプロンプトの予感

無限ループするバッチファイルの作り方!ラベルを使って何度も処理させてみよう! | Correct-Log

ワイルドカード

参考:

ワイルドカードの使い方 | JavaDrive

ワイルドカードについて | Windows と暮らす

ワイルドカード | Programming Field

バッチファイルでワイルドカードを使ってファイルを移動する | Naokix.net

甘くも危険なワイルドカードを使いこなす | @IT

フォルダを再帰的に処理する

参考:

dir コマンドでファイルやディレクトリを再帰的に検索する | まくまくノート

dir コマンドでファイル名を再帰的に検索する方法 | よぼろぐ よの冒険記

指定フォルダにあるファイル一覧を再帰的にフルパスで取得する方法 | oki2a24

サブフォルダーも含めてすべてのファイルの拡張子を変更する方法 | Project Group

フォルダ内のファイルを再帰的にリネームするバッチファイルの書き方 | 俺の技術メモ

記事をシェアする:
タグ:

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

Protected by reCAPTCHA