Windows CMD FINDSTR STRING И COPY ФАЙЛ - PullRequest
       0

Windows CMD FINDSTR STRING И COPY ФАЙЛ

0 голосов
/ 23 ноября 2018

У меня есть папка с подпапками, включающими txt и pdf файлы.Существует файл PDF для каждого файла TXT с почти одинаковым именем.

Например;для каждого ABC_R10.txt -> существует файл ABC) .pdf .

В Windows 10 с пакетным файлом

Я хочу найти определенную строку в файле .txt с помощью команды FINDSTR и скопировать файлы, которые содержат мою строку, в текущую папку.До этого момента я добился правильного кода.

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-файл с похожим именем, а не текстовый файл.

Мне нужно получить ABC из ABC_R10.txt и добавьте ). Pdf string и получите ABC) .pdf

Подстрока _R встречается в каждой.TXT-файл.

Как мне этого добиться?

Ответы [ 2 ]

0 голосов
/ 24 ноября 2018

Основано исключительно на вашем теперь отредактированном вопросе:

@For /F "Delims=_" %%A In ('FindStr /SPMIC:"BUKUM" *.txt') Do @Copy /Y "%%A).pdf">Nul
0 голосов
/ 23 ноября 2018

РЕДАКТИРОВАТЬ: нечего сказать модификации @ 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
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...