CMD de Windows 7
Puedo recuperar una lista de archivos con el siguiente comando dir /b | find "TENDER_NUM 2"
. Estoy intentando copiar todos los archivos devueltos por buscar en otra carpeta.
He intentado:
for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\
Lo cual no funcionó.
EDITAR 1: El mensaje de error dice unexpected |
, que supongo proviene deldir/b | Findstr
EDITAR 2: Sí, dir_to_copy\ existe
Respuesta1
El mensaje de error dice inesperado|
for /r %x in (dir /b | findstr "TENDER_NUM 2") do copy "%x" dir_to_copy\
Hay varios errores en el comando anterior.
Debes escapar del
|
carácter especial usando^
:^|
Debe encerrar entre
dir /b | findstr "TENDER_NUM 2"
comillas simples'
:'dir /b ^| findstr "TENDER_NUM 2"'
Necesitas usar
for /f
en lugar defor /r
:para /f-Comando de bucle contra los resultados de otro comando.
para /r- Recorrer archivos (subcarpetas recursivas).
Utilice el siguiente comando desde un cmd
shell:
for /f %x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%x" dir_to_copy\
En un archivo por lotes (reemplazar %
con %%
):
for /f %%x in ('dir /b ^| findstr "TENDER_NUM 2"') do copy "%%x" dir_to_copy\
Otras lecturas
- Un índice AZ de la línea de comando CMD de Windows- Una excelente referencia para todo lo relacionado con la línea cmd de Windows.
- para /f- Comando de bucle contra los resultados de otro comando.
- para /r- Recorrer archivos (subcarpetas recursivas).
- sintaxis- Caracteres de escape, delimitadores y comillas.