我是cmd的新手,我正在尝试查找包含某些文件的目录。我有几百个要查看的目录,其中一些包含文件中带有单词out
的文件,例如Nov13bDout.txt
。并非所有目录都包含一个带有字符串out
的文件,但有些目录确实存在并且我正在尝试查找哪些目录。现在这就是我所拥有的:
@echo off
setlocal disabledelayedexpansion
set "folder=%~1"
if not defined folder set "folder=%cd%"
for /d %%a in ("%folder%\*") do (
rem for /f in dir, if f=*out* then echo %%~nxa
)
endlocal
我还在学习如何使用cmd,我不知道如何编写注释部分的代码。任何帮助表示赞赏。
答案 0 :(得分:1)
你可以这样做:
@echo off
setlocal disabledelayedexpansion
set "folder=%~1"
if not defined folder set "folder=%cd%"
for /D %%a in ("%folder%\*") do (
rem // Reset flag variable initially:
set "flag="
rem /* Search for files containing `out` in their names;
rem if at least one is found, flag variable is set: */
for %%b in ("%%~a\*out*.*") do set "flag=#"
rem // Query whether flag variable has been set:
if defined flag echo "%%~nxa"
)
endlocal