¿Cómo usar dir y copiar juntos para buscar directorios y copiar a una carpeta?


10

Necesito buscar una carpeta específica y sus subdirectorios para archivos, luego copiarlos a una carpeta específica en otro lugar. ¿Es posible usar diry copycon una tubería?

dir /s foo???.txt | copy g:\someplace

Lo anterior no funciona. El lado izquierdo de la tubería encuentra lo que quiero, pero no consigo que copie los archivos encontrados. Estoy usando el símbolo del sistema de Windows 7.


¿Qué tipo de archivo necesitas por curiosidad? ¿No sería suficiente un comodín?
Dave

Necesito usar los comodines (??? - "?" Es un comodín de un solo dígito) en el comando de modo que lo anterior capturaría foo_42, foo_01, etc. y estos estarían en varias subcarpetas.
Flotsam N. Jetsam

Respuestas:


10

Podrías simplemente usar xcopy:

xcopy /s foo???.txt g:\someplace

Esto mantendrá la estructura del directorio.

Si no desea la estructura del directorio, puede hacer lo siguiente:

for /r %i in (foo???.txt) do xcopy /Y "%i" g:\someplace

Si está utilizando esto en un archivo por lotes, debe duplicar el %siguiente:

for /r %%i in (foo???.txt) do xcopy /Y "%%i" g:\someplace

En realidad, necesito modificarlo un poco. ¿Se puede hacer sin mantener la estructura del directorio?
Flotsam N. Jetsam

Jaja, eso es lo que tenía miedo :) (por eso lo dije específicamente). Pero, ¿qué harías con nombres de archivo duplicados? No se puede hacer con xcopy en sí, pero se puede hacer con tubería a robocopy (o tal vez simplemente copiar pero en un archivo por lotes). ¿Qué versión de Windows tienes?
Rik

Windows 7. No habrá duplicados para mi aplicación.
Flotsam N. Jetsam

Se agregó el método para copiar en un directorio. Por suerte no hay necesidad de robocopy. Solo úsalo for /r.
Rik

1
Tú Molas. Desearía poder votarte de nuevo. ¡Gracias!
Flotsam N. Jetsam
Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.