Hola, buenos dias, soy nuevo en este foro y necesito, si es posible, que me ayuden a automatizar una tarea.
Necesito copiar un archivo del disco C y pegar ese archivo en todas las subcarpetas de una carpeta.
@echo OFF
xcopy "C:\test.txt" "C:\prueba" /Y
pause
El archivo "test.txt" se me pega solo en la carpeta prueba, pero necesito que también se pegue en todos los subdirectorios de la carpeta prueba. Supongo que hay que hacer un FOR. ¿Me pueden ayudar?. Gracias
Prueba a hacer algo del tipo:
for /f "tokens=*" %%G in ('dir /b /s /a:d "C:\prueba*"') do (copy "C:\test.txt" "%%G\test.txt")
No se si funciona correctamente, pues no tengo tiempo para probarlo.
Un saludo
Gracias, si funciono
Pero si ahora quiero copiar una carpeta, ¿Cómo hago?
Osea me refiero que ahora el archivo test.txt esta dentro de C:\test\test.txt y quiero copiar la carpeta test y pegarla en todos los subdirectorios de la carpeta prueba sobreescribiendo si ya existe el archivo. Gracias
Prueba así:
for /f "tokens=*" %%G in ('dir /b /s /a:d "C:\prueba*"') do (xcopy "C:\test" "%%G\" /I /Y)
No se si será "%%G\" o "%%G"
No funciona, probé las dos alternativas que pusiste y nada
EDIT: Me sigue copiando el archivo test.txt en cada subdirectorio de prueba pero no la carpeta test.
for /f "tokens=*" %%G in ('dir /b /s /a:d "C:\prueba\*"') do (xcopy "C:\test" "%%G" /I /Y)
Qué raro, y así?
for /f "tokens=*" %%G in ('dir /b /s /a:d "C:\prueba\*"') do (xcopy "C:\test" "%%G\test" /I /Y)
Ahi si funciono, muchas gracias Almapa. Exitos
Buenos diás, ya hice funcionar el programa, pero quisiera saber cual es el atributo para que no sobreescriba los archivos que ya existan, gracias.
@
XpolzeBusca antes de preguntar
En consola:
XCopy /?
Cita de: Xcopy Help /Y Suprime la petición de confirmación de sobrescritura de un archivo de destino existente.
/-Y Pide confirmación de sobrescritura de un archivo de destino existente.
Saludos!
Mmmm pero supongo que querrá que se haga sin preguntar. Imagino. Y no he encontrado esa opción para Xcopy