Ich habe einen Ordner, der die unten genannten Dateien enthält:
destiny.txt
destiny1.txt
destiny2.txt
destiny3.txt
destiny4.txt
destiny5.txt
destiny6.txt
destiny7.txt
Davon stammen destiny1.txt, destiny4.txt und destiny6.txt aus Batch1.
Ich verwende es 7zip
zum Zippen der Dateien.
Kann ich diese 3 Dateien in einem einzigen Schritt erstellen DestinyTest.zip
?
Ist es möglich?
Antwort1
Kann ich diese 3 Dateien in einem einzigen Schritt erstellen
DestinyTest.zip
?
Sie können die Befehlszeilenversion von 7zip verwenden, die 7z
.
Von einer Befehlszeile:
7z a -tzip DestinyTest.zip destiny1.txt destiny4.txt destiny6.txt
a
- Fügt Dateien zum Archiv hinzu.-tzip
– Gibt den Archivtyp an (wir erstellen einzip
Archiv).
Weiterführende Literatur
Antwort2
Wenn Sie eine Datei haben, die die Dateien auflistet, die in die Zip-Datei geladen werden sollen, z. B.
Erstellen Sie eine Liste der zu archivierenden Dateien, eine pro Zeile. Dies ist eine @-Liste aus der DOS-Zeit, eine Reihe von Programmen tun dies für jede Zeile.
Sie können eine solche Datei mit erstellen dir /b destin*.* > zipme.lst
und dann Zeilen in einem ASCII-Editor (Notepad oder Bearbeiten) entfernen.
type zipme.lst destiny1.txt destiny4.txt destiny6.txt 7za a -tzip DestinyTest.zip @zipme.lst
Dadurch wird zipme.lst gefunden und alle darin aufgelisteten Dateien hinzugefügt. Es kann länger als die Befehlszeile sein und Sie haben eine gewisse Kontrolle darüber.
Antwort3
Ich hatte ein ähnliches Problem und wollte es mit einemBatch-Skript. Hier ist, wie:
Im folgenden Beispiel sucht das Skript nach allen CSV-Dateien, die mit „cell_cfg“ und „slave_cfg“ beginnen, sammelt sie und komprimiert sie in einer Datei namens „cfg.7z“, die in einem Unterverzeichnis namens „zip“ gespeichert ist:
@ECHO OFF
setlocal enableDelayedExpansion
mkdir zip
ECHO collecting filenames...
set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z
FOR %%i IN (cell_cfg*.csv) DO (
ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
SET filenames=!filenames!" "%%i
)
)
FOR %%i IN (slave_cfg*.csv) DO (
ECHO "%%i" | FIND /I "zip_cfg.bat" 1>NUL) || (
SET filenames=!filenames!" "%%i
)
)
set filenames=%filenames%"
%filenames%
(Passen Sie den Pfad Ihrer 7z.exe und die Datei-/Ordnernamen an. Wenn Sie .zip statt .7z möchten, benennen Sie die Zeilen um:
set filenames="C:\Program Files\7-Zip\7z.exe" a -t7z "zip/cfg.7z
hinein
set filenames="C:\Program Files\7-Zip\7z.exe" a -tzip "zip/cfg.zip
)
Ich habe es als 'zip_cfg.bat' gespeichert und in den Ordner mit den Dateien gelegt, die ich zippen möchte. Dann kann ich es in der Kommandozeile aufrufen: Zuerst zum Ordner mit den Dateien navigieren, dann einfach aufrufen:
zip_cfg.bat
Falls Sie alle Dateien im Ordner ("*") komprimieren möchten, verhindert der Teil „FIND /I "zip_cfg.bat" 1>NUL“, dass das Skript die Batchdatei selbst komprimiert.
Hoffe, das hilft jemandem ... :)