执行 CMD FINDSTR 字符串并复制文件

问题描述 投票:0回答:2

我有一个包含子文件夹的文件夹,其中包含 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.txtABC 并添加 ).pdf 字符串并获取 ABC).pdf

_R的子字符串出现在每个.txt文件中。

我怎样才能实现它?

batch-file cmd
2个回答
0
投票

仅基于您现在编辑的问题:

@For /F "Delims=_" %%A In ('FindStr /SPMIC:"BUKUM" *.txt') Do @Copy /Y "%%A).pdf">Nul

0
投票

编辑:对@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
© www.soinside.com 2019 - 2024. All rights reserved.