¿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.

Flotsam N. Jetsam
fuente
¿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
Rik
fuente
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