Я скачал с 7zip их инструмент командной строки 7za.exe и мне нужно выполнить следующий скрипт:
echo off
cls
set zip ="C:\7za.exe"
set filename="%date%.backup.zip"
set pathtobackup="C:\MyDocs"
%zip% -t7z %filename% %pathtobackup%\*.doc
Я намерен сделать резервную копию всех doc-файлов в папке MyDocs (включая подпапки) и поместить их в датированный zip-файл. После этого я перенесу этот файл с помощью robocopy на свой сервер, но в данный момент у меня возникли некоторые проблемы с тем, чтобы заставить его заархивировать файлы.
Кто-нибудь знает? В любом случае, я тоже могу добавить пароль для файла?
решение1
Используйте синтаксис
7z a -tzip archive.zip -r src\*.cpp src\*.h
так что в вашем случае это будет
7z a -t7z %filename% -r %pathtobackup%\*.doc
Источник:http://sevenzip.sourceforge.jp/chm/cmdline/switches/recurse.htm
решение2
Установите 7z, и вы сможете использовать этот рабочий пример со скриптом удаления файлов старше 7 дней. Этот скрипт делает zip-архивирование файлов из указанной папки 'input' в папку 'output'. Чтобы заархивировать папки, вам нужно добавить /d или, чтобы заархивировать все файлы в папке, просто измените последний "%%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"
решение3
Я нашел простое решение для этого. Предположим, у вас есть несколько подпапок, которые нужно сжать в папку. В этом случае, 1. Загрузите и установите программное обеспечение 7zip. Затем скопируйте 7z.exe в определенную папку, в которую вы хотите сжать ваши подпапки.
В блокноте скопируйте и вставьте следующее и сохраните как файл .bat.:
cd "your_Folder_path" for /d %%f in (*) do (7z a -t7z %%f.7z "your_Folder_path\%%f")
Двойной щелчок для запуска файла.
Если вы хотите удалить исходные папки, добавьте это перед закрывающей скобкой:
rd /s /q "your_Folder_path\%%f"
решение4
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"