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

Cmd 打印包含包含特定字符串的文件的所有目录,cmd,Cmd,我是cmd新手,正在尝试查找包含某些文件的目录。我有几百个目录要查看,其中一些目录包含一个文件,文件中有单词out,例如Nov13bDout.txt。并非所有目录都包含字符串为“out”的文件,但有些目录包含该字符串,我正在尝试查找哪些目录包含该字符串。现在我得到的是: @echo off setlocal disabledelayedexpansion set "folder=%~1" if not defined folder set "folder=%cd%"

我是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,不知道如何为注释部分编写代码。非常感谢您的帮助。

您可以按以下方式操作:

@echo关闭
setlocal disabledelayedexpansion
设置“文件夹=%~1”
如果未定义文件夹集“文件夹=%cd%”
对于(“%folder%\*”)中的/D%%a,请执行以下操作(
rem//Reset flag变量初始值:
设置“标志=”
rem/*搜索名称中包含“out”的文件;
rem如果至少找到一个,则设置标志变量:*/
对于%%b in(“%%~a\*out*”),请设置“标志=#”
rem//查询是否已设置标志变量:
如果已定义标志echo“%%~nxa”
)
端部