我是批处理脚本的新手。我要编写一个批处理脚本,它将搜索一个子目录,然后比较目录中存在的文件的扩展名。 例如,对于以下结构:
D:\Batch_script\unknown_dir_name\destiantion1\dummy.txt
我的脚本首先应该找到 destiantion1 目录,然后如果它存在,它应该查找dummy.txt
文件。
有可能吗?任何人都可以建议我这样做。
由于
答案 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
)
for
和dir
命令在搜索时不区分大写和小写,因此,请使用过滤器。如果找到该字符串,则不会设置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