编写批处理脚本以查找子目录

时间:2014-02-19 09:03:16

标签: batch-file

我是批处理脚本的新手。我要编写一个批处理脚本,它将搜索一个子目录,然后比较目录中存在的文件的扩展名。 例如,对于以下结构:

D:\Batch_script\unknown_dir_name\destiantion1\dummy.txt

我的脚本首先应该找到 destiantion1 目录,然后如果它存在,它应该查找dummy.txt文件。

有可能吗?任何人都可以建议我这样做。

由于

1 个答案:

答案 0 :(得分:1)

for /f "tokens=*" %%f in (
    'dir /ad /s /b "d:\Batch_script\destiantion1"'
) do if exist "%%~f\dummy.txt" echo %%~f

对于d:\ batch_script下名为destiantion1的每个目录,如果它包含dummy.txt文件,则回显到控制台

已编辑 - 以适应评论

for /f "tokens=*" %%f in (
    'dir /ad /s /b "d:\Batch_script\destiantion1"'
) do if exist "%%~f\dummy.txt" (
    dir /a-d /b "%%~f\dummy.txt" 2>nul | find "dummy.txt" > nul && echo %%~f
)

fordir命令在搜索时不区分大写和小写,因此,请使用过滤器。如果找到该字符串,则不会设置errorlevel,并且会执行&&之后的代码。

其他替代方法是处理搜索已填充文件夹/文件的完整文件列表

for /f "delims=" %%f in (
    'dir /a-d /s /b "d:\batch_script\dummy.txt" ^| findstr /l /e /c:"\destiantion1\dummy.txt"'
) do echo %%~dpf