【bat】バッチファイルでフォルダの存在有無により処理を行う

バッチファイル

バッチファイルで作業を自動化する際、あるフォルダが存在する場合、しない場合の処理を記述することは、よくあります。本記事では、バッチファイル内でフォルダの存在確認をする方法を紹介します。

フォルダ存在確認のサンプルコード

フォルダの有無により1コマンド実行(シンプル)

フォルダあり

if exist でフォルダの存在確認ができます。直後にコマンドを1つ書けます。

@echo off
rem フォルダ名を変数に設定
set FOLDERNAME=exampleFolder

rem フォルダが存在する場合のみコマンドを実行
if exist %FOLDERNAME% echo Folder exists.

フォルダなし

上記サンプルのif文を not exist とすることで逆の判定にできます。

@echo off
rem フォルダ名を変数に設定
set FOLDERNAME=exampleFolder

rem フォルダが存在する場合のみコマンドを実行
if not exist %FOLDERNAME% echo Folder exists.

フォルダが存在する/しない場合に複数コマンドの処理を実行(括弧でまとめる)

if exist でフォルダの存在確認を行い、その後の括弧で処理をまとめることができます。
フォルダ存在なしを先に判定したい場合は if not exist と記述します。
else以降を省略することも出来ます。

@echo off
rem フォルダ名を変数に設定
set FOLDERNAME=exampleFolder

rem フォルダが存在するか確認
if exist %FOLDERNAME%\ (
    rem フォルダが存在する場合の処理
    echo Folder exists.
) else (
    rem フォルダが存在しない場合の処理
    echo Folder does not exist.
)

フォルダが存在する場合に複数コマンドの処理を実行(gotoを使用)

if not exist でフォルダが「無い」ことを確認します。
フォルダが無い場合は処理を行わないようgoto文でバッチファイル末尾までジャンプします。
if文の論理が逆転する点について注意が必要です。
フォルダがある場合:if not exist ~ goto Label
フォルダがない場合:if exist ~ goto Label

@echo off
rem フォルダ名を変数に設定
set FOLDERNAME=exampleFolder

rem フォルダが存在しない場合はgoto文でジャンプ。存在する場合は以下の処理を行う
if not exist %FOLDERNAME% goto FolderNotExistLabel
    rem フォルダが存在する場合の処理
    echo Folder exists.

rem フォルダが存在しない場合はgotoでココに飛んでくる
:FolderNotExistLabel

タイトルとURLをコピーしました