打印包含包含特定字符串的文件的所有目录

时间:2017-06-02 13:11:23

标签: cmd

我是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,我不知道如何编写注释部分的代码。任何帮助表示赞赏。

1 个答案:

答案 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