Результаты Windows XCOPY из команды FIND

Результаты Windows XCOPY из команды FIND

Windows 7 Командная строка

Я могу получить список файлов с помощью следующей команды dir /b | find "TENDER_NUM 2". Я пытаюсь скопировать все файлы, которые были возвращены find, в другую папку.

Я пробовал: for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\

Но это не сработало.

EDIT 1: В сообщении об ошибке говорится unexpected |, что, как я предполагаю, исходит отdir/b | Findstr

EDIT 2: Да, dir_to_copy\ существует

решение1

Сообщение об ошибке говорит: «Неожиданное»|

for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\

В приведенной выше команде есть несколько ошибок.

  1. Вам необходимо экранировать |специальный символ, используя ^:

    ^|
    
  2. Вам необходимо заключить dir /b | findstr "TENDER_NUM 2"в одинарные кавычки ':

    'dir /b ^| findstr "TENDER_NUM 2"'
    
  3. Вам необходимо использовать for /fвместо for /r:

    для /ф-Команда цикла по результатам другой команды.

    для /р- Циклический просмотр файлов (рекурсивный просмотр подпапок).

Используйте следующую команду из cmdоболочки:

for /f %x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%x" dir_to_copy\

В пакетном файле (заменить %на %%):

for /f %%x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%%x" dir_to_copy\

Дальнейшее чтение

  • Индекс AZ командной строки Windows CMD- Отличный справочник по всем вопросам, связанным с командной строкой Windows.
  • для /ф- Циклическая команда по результатам другой команды.
  • для /р- Циклический просмотр файлов (рекурсивный просмотр подпапок).
  • синтаксис- Экранированные символы, разделители и кавычки.

Связанный контент