Windows XCOPY resulta do comando FIND

1

Windows 7 CMD

Eu posso recuperar uma lista de arquivos pelo seguinte comando dir /b | find "TENDER_NUM 2" . Estou tentando copiar todos os arquivos que foram retornados por encontrar em 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: Mensagem de erro diz unexpected | , que eu suponho ser proveniente do dir/b | Findstr

EDIT 2: Sim, dir_to_copy \ existe

    
por Bardworx 18.06.2016 / 15:52

1 resposta

1

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 /f em vez de for /r :

    para / f - Comando Loop contra os resultados de outro comando .

    para / r - Fazer um loop pelos arquivos (criar subpastas).

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 de lote (substitua % por %% ):

for /f %%x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%%x" dir_to_copy\

Leitura Adicional

por 18.06.2016 / 16:19