Windows 在文件夹和子文件夹树上迭代,并按名称查找特定文件

Windows 在文件夹和子文件夹树上迭代,并按名称查找特定文件,windows,batch-file,Windows,Batch File,我不熟悉批处理脚本。基本上,我希望遍历文件夹和子文件夹的树,并按名称查找特定的文件。 到目前为止,我有以下几点: @echo off SETLOCAL for /F %%i in ('dir C:\Projects /s /b') do ( Set originalFileName = %%~ni echo %originalFileName% ) pause 基本上,现在我想与字符串进行比较,并将该文件复制到另一个文件夹。如果树中只有一个文件名.ext,这只是实现相

我不熟悉批处理脚本。基本上,我希望遍历文件夹和子文件夹的树,并按名称查找特定的文件。 到目前为止,我有以下几点:

@echo off
SETLOCAL
for /F %%i in ('dir C:\Projects /s /b') do (

    Set originalFileName = %%~ni
    echo %originalFileName%
    )
pause

基本上,现在我想与字符串进行比较,并将该文件复制到另一个文件夹。

如果树中只有一个
文件名.ext
,这只是实现相同目标的另一种方法

@echo off
for /F "delims=" %%a in ('dir C:\Projects /s /b /a-d') do if /i "%%~na"=="string" copy "%%~fa" "x:\another folder\"
@echo off
for /F "delims=" %%a in ('dir "C:\Projects\filename.ext" /s /b /a-d') do copy "%%a" "x:\target-folder\"

如果树中只存在一个
filename.ext
,这只是实现相同目标的另一种方法

@echo off
for /F "delims=" %%a in ('dir "C:\Projects\filename.ext" /s /b /a-d') do copy "%%a" "x:\target-folder\"

我将其更改为不区分大小写的字符串比较。如果需要比较确切的大小写,请删除
/i
。我将其更改为不区分大小写的字符串比较。如果需要比较确切的大小写,请删除
/i
。或者,由于OP似乎只想比较名称(不带扩展名),因此可以是
。。。在('dir“C:\Projects\filename.*')中,执行…
或者,由于OP似乎只想比较名称(不带扩展名),因此它可以是
。。。在('dir“C:\Projects\filename.*.')中执行…