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

Windows 7 CMD

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

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

Который не работал.

РЕДАКТИРОВАТЬ 1: сообщение об ошибке говорит unexpected |Я предполагаю, что исходит от dir/b | Findstr

РЕДАКТИРОВАТЬ 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:

    for / f - Циклическая команда против результатов другой команды.

    for / r - перебирать файлы (подпапки Recurse).

Используйте следующую команду из 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\

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

Другие вопросы по тегам