CMD do Windows 7
Posso recuperar uma lista de arquivos com o seguinte comando dir /b | find "TENDER_NUM 2"
. Estou tentando copiar todos os arquivos que foram retornados pelo find para outra pasta.
Eu tentei:
for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\
O que não funcionou.
EDIT 1: A mensagem de erro diz unexpected |
, que presumo que seja proveniente dodir/b | Findstr
EDIT 2: Sim, dir_to_copy\ existe
Responder1
A mensagem de erro diz inesperado|
for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\
Existem vários erros no comando acima.
Você precisa escapar do
|
caractere especial usando^
:^|
Você precisa colocar
dir /b | findstr "TENDER_NUM 2"
entre aspas simples'
:'dir /b ^| findstr "TENDER_NUM 2"'
Você precisa usar
for /f
em vez defor /r
:para /f-Comando de loop em relação aos resultados de outro comando.
para /r- Loop através de arquivos (subpastas Recurse).
Use o seguinte comando em um cmd
shell:
for /f %x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%x" dir_to_copy\
Em um arquivo em lote (substitua %
por %%
):
for /f %%x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%%x" dir_to_copy\
Leitura adicional
- Um índice AZ da linha de comando do Windows CMD- Uma excelente referência para todas as coisas relacionadas à linha cmd do Windows.
- para /f- Comando de loop em relação aos resultados de outro comando.
- para /r- Loop através de arquivos (subpastas Recurse).
- sintaxe- Caracteres de escape, delimitadores e citações.