フォルダーがどこにも見つからない場合にエラーをスローするために、指定されたディレクトリを再帰的に検索するバッチ スクリプトを作成したいと思いますIF NOT EXIST
。これまでのところ、次のようになっています。
IF NOT EXIST %FOLDER1% goto :ERROR
IF NOT EXIST %FOLDER2% goto :ERROR
IF NOT EXIST %FOLDER3% goto :ERROR
:ERROR
echo There aren't any folders to clean...
PAUSE goto :END
goto END
状況やクリーンアップが必要なフォルダに応じて、、%FOLDER1%
を異なる名前に置き換えます。現在のスクリプトはファイルのみを検索するようですが、この構文でディレクトリをどのように定義すればよいでしょうか?%FOLDER2%
%FOLDER3%
答え1
これを実行する簡単な方法と、同じスクリプト内でフォルダーのリストを維持する方法を用意しました。これにより、スクリプトを開いてそれに応じて変更することで、必要に応じて変更を加えることができます。
本質的には、これは電話サブルーチンには、チェックしたいフォルダパスごとに、変数とその値がコンマで区切られ、二重引用符で囲まれています。その後、:List
制御を元に戻し、単純なArrary
GOTO :EOF
CALL
のために%Array%
loop を使用すると、ロジックに対して変数の値を 1 つずつ反復処理できますIF NOT EXIST
。
@ECHO ON
CALL :List
FOR %%A IN (%Array%) DO (
IF NOT EXIST "%%~A" ECHO %%~A Does Not Exist
)
EXIT
:List
::: Maintain your folder paths in the 'SET Array=' as values enclosed by double quotes and separated by commas
SET Array="C:\Folder\Path1", "X:\\Folder\\Math2", "\\server\Bath3", "c:/Folder/Wrath4"
GOTO :EOF