Robocopy archivo por lotes para mover y comprimir la carpeta y el registro de salida

Esto es lo que tengo actualmente:

ROBOCOPY C:\A\move\Logs C:\A\move\moved /MOVE /S /MINAGE:5 /log+:output.log
for /d %%X in (*) do (
"c:\Program Files\7-Zip\7z.exe" a "LOG"%DATE:~7,2%.%DATE:~4,2%.%DATE:~-4%Backup.zip" "%%X\" 
pause

Tengo algunos problemas al intentar configurar el lote para comprimir la carpeta de destino en un archivo zip usando 7zip. alguna sugerencia o ayuda?

preguntado el 14 de febrero de 14 a las 01:02

¿Qué tienes hasta ahora, amigo? -

¿Cuál es tu comando que estás ejecutando? algo parecido a 7a a -tzip C:\A\move\moved\archive.zip *.txt? Esto archivaría todos los archivos .txt en el directorio actual en el ...\moved\archive.zip como un archivo zip. -

ROBOCOPY C:\A\move\Logs C:\A\move\moved /MOVE /S /MINAGE:5 /log+:output.log for /d %%X in (*) do "c:\Program Files\7 -Zip\7z.exe" a "LOG"%DATE:~7,2%.%DATE:~4,2%.%DATE:~-4%Backup.zip" "%%X\" pausa //Entonces Hasta ahora, puedo mover los archivos correctamente, pero no puedo poner la carpeta de salida en un archivo .zip y eliminar los archivos cuando estén completos.

Sugerí una edición de su pregunta con el código en la pregunta. Sin embargo, no puedo echarle un vistazo más hasta que esté en casa. -

1 Respuestas

Yo comenzaría con esto:

@ECHO off
SET "7ZIP=c:\Program Files\7-Zip\7za.exe"
SET "FROM=C:\A\move\Logs"
SET "TO=C:\A\move\moved"
SET OUTPUT=output.log
SET DD=%DATE:~7,2%.%DATE:~4,2%.%DATE:~-4%

if not exist %7ZIP% ECHO No 7z && GOTO :END

ROBOCOPY %FROM% %TO% /MOVE /S /MINAGE:5 /log+:%OUTPUT%

for /d %%X in (*) do (
  "%7ZIP%" a -tzip "LOG_%DD%_%%X_Backup.zip" %%X
)

:END
pause

Respondido 19 Feb 14, 16:02

Todavía no puedo hacer que llame a 7zip para hacer lo suyo. Si saco la funcionalidad de 7zip. Todavía puedo hacer que haga aproximadamente la mitad de lo que necesito. También cambié el Minage a 14 ya que los archivos con los que estoy trabajando están envejeciendo... :) @ECHO off SET "FROM=C:\A\move\Logs" SET "TO=C:\A\move\ movido" SET OUTPUT=output.log SET DD=%DATE:~7,2%.%DATE:~4,2%.%DATE:~-4% ROBOCOPY %FROM% %TO% /MOVE /S /MINAGE: 14 /registro+:%SALIDA% - agujero

Puedes hacerlo funcionar. Es solo una simple cuestión de hacer que las opciones de la línea de comando sean correctas para el comando 7za. Entonces, solo arregla esas cosas e inténtalo de nuevo. Hice ediciones en el script anterior; por favor tome nota. - djangofan

No es la respuesta que estás buscando? Examinar otras preguntas etiquetadas or haz tu propia pregunta.