1

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 ответ1

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\

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .