Ayuda xcopy batch

Iniciado por N@5h, 17 Septiembre 2013, 12:24 PM

0 Miembros y 2 Visitantes están viendo este tema.

N@5h

hola gente lo que quiero hacer es un back up por .bat



quiero no tener q apretar la "N" cada ves q pregunta si deseo remplazar un archivo...

no quiero remplazar solo copiar lo que no tengo..

como seria /?

desde ya muy agradecido.. saludos atte.
Nash

Almapa

Si no te importa que se sobrescriban los distintos archivos puedes utilizar la opción  /y
en cambio si los que ya existen no quieres que se sobrescriban supongo que deberías hacer un bucle for recorriendo los distintos archivos y con un condicional copiarlos o no, según si existen o no. Sería una opción.

Un saludo.

Eleкtro

#2
Cita de: N@5h en 17 Septiembre 2013, 12:24 PMquiero no tener q apretar la "N" cada ves q pregunta si deseo remplazar un archivo...

como seria /?

Es algo tan sencillo como redirigir la pulsación de la tecla "N" al UserInput del comando XCopy:

Echo N| XCOPY /E /-Y ".\Dir1\*" ".\Dir2\"

Saludos!






EDITO:

Tema aparte...

Citar

...Por dios!!!

Permíteme que corrija tremenda catástrofe con toda mi buena intención:

TODOS LOS ARCHIVOS HAN SIDO COPIADOS SATISFACTÓRIAMENTE

Saludos!








N@5h

#3
Gracias Amigo...

Los ErRoReS son CosTuMbre :D

jaja!!

sabes que estoy probando y no me sale...

me lo cierra directamente o tira error de la forma que prueve ponerlo...

Eleкtro

Cita de: N@5h en 17 Septiembre 2013, 18:53 PMsabes que estoy probando y no me sale...

me lo cierra directamente o tira error de la forma que prueve ponerlo...

Muestra tu código, estás cometiendo algún error de sintaxis

saludos!








N@5h

si seguro q es de sintaxis
mi codigo:

@ECHO OFF

XCOPY /E/-Y D:\Escritorio\1 D:\Escritorio\2 N|

ECHO TODOS LOS ARCHIVOS AN SIDO COPYADOS SASTIFACTORIAMENTE

PAUSE

EXPLORER D:\Escritorio\2


nose donde ponerle el

Echo N|

desde ya muchas gracias...

Eleкtro

Cita de: N@5h en 17 Septiembre 2013, 21:18 PM
nose donde ponerle el

Echo N|

Lo tienes que poner a la izquierda, tal y como te mostré en mi ejemplo,
piensa que la salida del comando (una "N") se lo quieres pasar al comando que hay después de la pipe "|", no al revés.

Código (dos) [Seleccionar]
Echo N|XCOPY /E /-Y "D:\Escritorio\1\*" "D:\Escritorio\2\"

PD: Usa las comillas dobles siempre sobretodo cuando trabajes con directorios, son muy importantes.

Saludos!









N@5h

#7


nose que puedo estar asiendo mal...

Link arreglado

https://mega.co.nz/#!oJtF1Q6B!Icnwime1-xHksHlox0yk1G-x2GRvIn3JmPepfdjmKTU


te lo subi todo con todo a mega a ver q onda :D

Eleкtro

Es culpa mía, que hoy estoy un poco espeso, disculpa, Xcopy pide multiples confirmaciones...

Puedes usar el sistema de exclusiones del comando XCopy, aunque es una mierd@ de sistema hablando en claro y muy limitado:

Código (dos) [Seleccionar]
@Echo OFF

Set "Dir1=D:\Directorio1"
Set "Dir2=D:\Directorio2"

PUSHD "%Dir2%"
(For /R %%# in ("*") do (Echo %%~nx#))>>"%~dp0Exclude.txt"
POPD

XCOPY /E /-Y "%Dir1%\*" "%Dir2%\" /EXCLUDE:Exclude.txt

DEL /Q "Exclude.txt"
Pause&Exit







Otra alternativa es hacer esto, queda bastante feo, y limitado (a la cantidad de "N"), pero si no necesitas copiar muchos archivos entonces te funcionará:

Código (dos) [Seleccionar]
@Echo OFF

Echo NNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNNN|(
XCOPY /E /-Y "D:\DIRECTORIO\1\*" "D:\DIRECTORIO\\2\"
)

Pause&Exit


Saludos








N@5h

me quede con el primero...

exelente trabajo amigo...!!

te lo agradezco...

muchas gracias por la ayuda...

funciono perfecto...