Wie kann ich einen Batch-Job erstellen (.bat), die einen Ordner zip?

Von 7zip habe ich das Befehlszeilentool 7za heruntergeladen.exe, und ich muss folgendes Skript:

echo off

cls

set zip ="C:\7za.exe"

set filename="%date%.backup.zip"

set pathtobackup="C:\MyDocs"

%zip% -t7z %filename% %pathtobackup%\*.doc

Meine Absicht ist es, alle doc-Dateien im MyDocs-Ordner (einschließlich Unterordnern) zu sichern und in eine veraltete ZIP-Datei zu legen. Danach werde ich diese Datei mit Robocopy auf meinen Server verschieben, aber im Moment habe ich einige Probleme, die Dateien zu komprimieren.

Hat jemand eine Ahnung? Wie auch immer, ich kann auch ein Passwort für die Datei anhängen?

Author: Jason94, 2014-03-05

4 answers

Verwenden Sie die syntax

7z a -tzip archive.zip -r src\*.cpp src\*.h

In Ihrem Fall wäre es also

7z a -t7z %filename% -r %pathtobackup%\*.doc

Quelle: http://sevenzip.sourceforge.jp/chm/cmdline/switches/recurse.htm

 5
Author: Diaa Sami,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-03-05 09:54:11

Installieren Sie 7z und Sie können dieses Arbeitsbeispiel mit delete script für Dateien verwenden, die älter als 7 Tage sind. Was dieses Skript tut, zippt es die Dateien aus dem angegebenen 'input' - Ordner in den 'output' - Ordner. Um Ordner zu komprimieren, müssen Sie /d hinzufügen oder alle Dateien innerhalb des Ordners komprimieren, indem Sie einfach das letzte "%%X"ändern.

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
Author: Zly-Zly,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2015-04-14 14:42:38

Dafür habe ich eine einfache Lösung gefunden. Angenommen, Sie haben mehrere Unterordner, die in einem Ordner gezippt werden sollen. In diesem Fall, 1. Herunterladen und lnstall 7zip-software. Dann kopieren 7z.exe in den bestimmten Ordner, in den Sie Ihre Unterordner komprimieren möchten.

In einem Notizblock, kopieren und fügen Sie die folgenden und speichern unter .bat-Datei. :

cd "your_Folder_path" for /d %%f in (*) do (7z a -t7z %%f.7z "your_Folder_path\%%f")

Der Doppelklick, um die Datei auszuführen.

Falls Sie die ursprünglichen Ordner löschen möchten, fügen Sie dies vor der schließenden Klammer hinzu:

rd /s /q "your_Folder_path\%%f"
 1
Author: Manas Dutta,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2018-04-27 07:54:10
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"
 0
Author: Vishnu Murali,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/techietown.info/template/agent.layouts/content.php on line 61
2014-11-30 07:43:32