我有一个包含子文件夹的文件夹,其中包含 txt 和 pdf 文件。每个 txt 文件都有一个具有几乎相同名称的 Pdf 文件。
例如;对于每个 ABC_R10.txt --> 有一个 ABC).pdf 文件。
在 Windows 10 中,使用批处理文件,
我想使用 FINDSTR 命令在 .txt 文件中搜索特定字符串,并将包含我的字符串的文件复制到当前文件夹中。到目前为止我已经获得了正确的代码。
CLS
@ECHO OFF
ECHO FIND BUKUM
findstr /m /s /i /p /c:"BUKUM" *.txt > logfile.xls
for /f "delims=" %%a in ('findstr /m /s /i /p /c:"BUKUM" *.txt') do ^
copy "%%a" "%cd%"
if errorlevel 1 echo nothing found.
PAUSE
CLS
EXIT
但是我想找到完全匹配的文件名,但得到具有相似名称的pdf文件,而不是txt文件。
我必须获取 ABC_R10.txt 的 ABC 并添加 ).pdf 字符串并获取 ABC).pdf
_R的子字符串出现在每个.txt文件中。
我怎样才能实现它?
仅基于您现在编辑的问题:
@For /F "Delims=_" %%A In ('FindStr /SPMIC:"BUKUM" *.txt') Do @Copy /Y "%%A).pdf">Nul
编辑:对@Compo的修改没什么可说的,
只是当在代码块中使用未加引号的
)
时,必须将其转义 ^)
@ECHO OFF
CLS
ECHO FIND BUKUM
for /f "delims=_" %%A in (
'findstr /msip /c:"BUKUM" *.txt'
) do if exist "%%A).pdf" (
copy "%%A).pdf" "%cd%"
Echo copied %%A^).pdf to %cd%
) else echo not found "%%A).pdf"
PAUSE