Resultados do Windows XCOPY do comando FIND

Resultados do Windows XCOPY do comando FIND

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.

  1. Você precisa escapar do |caractere especial usando ^:

    ^|
    
  2. Você precisa colocar dir /b | findstr "TENDER_NUM 2"entre aspas simples ':

    'dir /b ^| findstr "TENDER_NUM 2"'
    
  3. Você precisa usar for /fem vez de for /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 cmdshell:

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

informação relacionada