在子目录中搜索filename中的字符串

Ika*_*ian 5 batch-file findstr

我有一个大的文件夹目录(称为C:\ Main).我需要设置一个批处理脚本来搜索该目录的子文件夹中的文件名中的字符串(而不是文件中的文本).我找不到答案了.

基本上,假设我需要在C:\ Main\*中的所有文件名中搜索字符串"abcd".我只是在寻找XML文件的匹配项.所以我需要找到:

C:\ MAIN\Secondary1\abcd_othertext.xml

C:\ MAIN\Secondary2\abcd_othertext.xml

C:\ MAIN\Secondary3\abcd_othertext.xml

在该主目录中的所有数百个文件夹中.然后我需要输出所有匹配(理想情况下是bat文件中的各个变量,但这是一个不同的蠕虫).在此先感谢您的帮助.

Tal*_*ude 14

DIR命令可以在子目录中执行通配符搜索.

DIR abcd*.xml /s /b
Run Code Online (Sandbox Code Playgroud)


Ele*_*ios 5

您可以使用For/R循环:http://ss64.com/nt/for_r.html

@Echo OFF

Set "Pattern=abcd"

For /R "C:\" %%# in (*.xml) Do (
    Echo %%~nx# | FIND "%Pattern%" 1>NUL && (
        Echo Full Path: %%~#
        REM Echo FileName : %%~nx#
        REM Echo Directory: %%~p#
    )
)

Pause&Exit
Run Code Online (Sandbox Code Playgroud)

编辑: ...单独变量:

@Echo OFF

Set "Pattern=abcd"

For /R "C:\" %%# in (*.xml) Do (
    Echo %%~nx# | FIND "%Pattern%" 1>NUL && (
        Set /A "Index+=1"
        Call Set "XML%%INDEX%%=%%~#"
        Echo Full Path: %%~#
        REM Echo FileName : %%~nx#
        REM Echo Directory: %%~p#
    )
)

CLS
Echo XML1 = %XML1%
Echo XML2 = %XML2%

Pause&Exit
Run Code Online (Sandbox Code Playgroud)