如何使用“IF NOT EXIST”递归扫描文件夹?

如何使用“IF NOT EXIST”递归扫描文件夹?

我想编写一个批处理脚本,该脚本将递归搜索指定目录,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%按照逻辑逐个迭代变量值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

更多资源

相关内容