De 7zip descargué su herramienta de línea de comandos 7za.exe y tengo el siguiente script:
echo off
cls
set zip ="C:\7za.exe"
set filename="%date%.backup.zip"
set pathtobackup="C:\MyDocs"
%zip% -t7z %filename% %pathtobackup%\*.doc
Mi intención es hacer una copia de seguridad de todos los archivos doc en la carpeta MyDocs (incluidas las subcarpetas) y colocarlos en un archivo zip con fecha. Luego moveré este archivo con robocopy a mi servidor, pero por el momento tengo algunos problemas para comprimir los archivos.
¿Alguien tiene una idea? De todos modos, ¿también puedo agregar una contraseña para el archivo?
Respuesta1
Usa la sintaxis
7z a -tzip archive.zip -r src\*.cpp src\*.h
entonces en tu caso sería
7z a -t7z %filename% -r %pathtobackup%\*.doc
Fuente:http://sevenzip.sourceforge.jp/chm/cmdline/switches/recurse.htm
Respuesta2
Instale 7z y podrá utilizar este ejemplo funcional con un script de eliminación para archivos de más de 7 días. Lo que hace este script es comprimir los archivos de la carpeta de "entrada" dada a la carpeta de "salida". Para comprimir carpetas, debe agregar /d o para comprimir todos los archivos dentro de la carpeta simplemente modifique el último "%%X".
REM This is a batch script to zip files in folder or add /d to zip folders.
REM This script is using 7z to zip files, installation is required - "[http://www.7-zip.org/a/7z938-x64.msi][1]"
REM Remember to point 'do' to 7z installed path 7z.exe
SET input1=D:\Backup\SampleFolder
SET input2=D:\Backup\SampleFolder2
SET output1=C:\ZipBackups\SampleFolder
SET output2=C:\ZipBackups\SampleFolder2
CD /d %input1%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output1%\%%X.zip" "%%X"
FORFILES /P "%input1%" /M *.* /D -8 /C "cmd /c del @file"
CD /d %input2%
for %%X in (*) do "C:\Program Files\7-Zip\7z.exe" a "%output2%\%%X.zip" "%%X"
FORFILES /P "%input2%" /M *.* /D -8 /C "cmd /c del @file"
Respuesta3
He encontrado una solución sencilla para esto. Supongamos que tiene varias subcarpetas para comprimir en una carpeta. En ese caso, 1. Descargue e instale el software 7zip. Luego copie 7z.exe a la carpeta particular donde desea comprimir sus subcarpetas.
En un bloc de notas, copie y pegue lo siguiente y guárdelo como archivo .bat. :
cd "your_Folder_path" for /d %%f in (*) do (7z a -t7z %%f.7z "your_Folder_path\%%f")
El doble clic para ejecutar el archivo.
En caso de que desee eliminar las carpetas originales, agregue esto antes de la llave de cierre:
rd /s /q "your_Folder_path\%%f"
Respuesta4
set hour=%time:~0,2%
if "%hour:~0,1%" == " " set hour=0%hour:~1,1%
echo hour=%hour%
set min=%time:~3,2%
if "%min:~0,1%" == " " set min=0%min:~1,1%
echo min=%min%
set secs=%time:~6,2%
if "%secs:~0,1%" == " " set secs=0%secs:~1,1%
echo secs=%secs%
set year=%date:~-4%
echo year=%year%
set month=%date:~3,2%
if "%month:~0,1%" == " " set month=0%month:~1,1%
echo month=%month%
set day=%date:~0,2%
if "%day:~0,1%" == " " set day=0%day:~1,1%
echo day=%day%
set datetimef=%day%_%month%_%year%___%hour%_%min%_%secs%
echo datetimef=%datetimef%
path %path%;"C:\Program Files\7-Zip"