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\
В приведенной выше команде есть несколько ошибок.
Вам необходимо экранировать
|
специальный символ, используя^
:^|
Вам необходимо заключить
dir /b | findstr "TENDER_NUM 2"
в одинарные кавычки'
:'dir /b ^| findstr "TENDER_NUM 2"'
Вам необходимо использовать
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.
- для /ф- Циклическая команда по результатам другой команды.
- для /р- Циклический просмотр файлов (рекурсивный просмотр подпапок).
- синтаксис- Экранированные символы, разделители и кавычки.