verwenden Sie batch-scripting und 7-zip, um Dateien zu komprimieren
Habe ich einen Ordner aus Dateien :
"1.txt"
"2.txt"
Muss ich komprimieren, Sie in einem zip-Dank 7-zip über eine batch-Datei.
Alles funktioniert mit diesem script :
7za a my_zip.rar 1.txt 2.txt
Bekomme ich eine my_zip.rar mit den zwei Dateien.
Das problem ist, dass ich brauche, um den Namen der zip-Datei mit dem Datum zu der Zeit die batch-Datei ausgeführt wird. So habe ich versucht, dieses script :
set year=%date:~10,4%
set month=%date:~4,2%
7za a %year%_%month%.rar 1.txt 2.txt
Ich bin immer ein Ordner namens "_2" mit einem ".rar" mit meinem 2-Dateien.
Ich hätte gerne ein "2014_12.rar" Datei mit meiner 2 Dateien.
EDIT : Script output :
D:\Users>zip.bat
D:\Users>set year=
D:\Users>set month=2/
D:\Users>echo _2/.rar 1.txt 2.txt
_2/.rar 1.txt 2.txt
D:\Users>7za a _2/.rar 1.txt 2.txt
7-Zip (A) 9.20 Copyright (c) 1999-2010 Igor Pavlov 2010-11-18
Scanning
Updating archive _2/.rar
Compressing 1.txt
Compressing 2.txt
Everything is Ok
Meiner zip.bat verwendet :
set year=%date:~10,4%
set month=%date:~4,2%
echo %year%_%month%.rar 1.txt 2.txt
7za a %year%_%month%.rar 1.txt 2.txt
Dank im Voraus für Eure Hilfe
- funktioniert gut für mich, versuchen Sie vielleicht zu verwenden
"
in der rar-Datei-name:"%year%_%month%.rar"
- (Ich habe
7z.exe
) - Ok, da mit dieser exe (7za), das hinzufügen der Anführungszeichen ändert nichts. Trotzdem danke
- Ich Verstand das nicht. haben Sie noch das problem?
- Ja, ich habe auch versucht mit 7z.exe, Gleiches Ergebnis : ein Ordner namens "_2" mit ".rar" mit meinem 2-Dateien. Es ist wie der name in meiner batch-Datei wird nicht richtig interpretiert, aber ich verstehe nicht, warum es für Sie arbeiten.
- können Sie fügen Sie die Zeile
echo %year%_%month%.rar 1.txt 2.txt
und fügen Sie die Ausgabe auf die Frage? - Es klingt wie Sie ' re immer eine
/
im%year%
oder%month%
wird interpretiert als Pfad-separator.echo %year%_%month%
um zu sehen, was Ihre Variablen zugeordnet. - Jahr variable leer ist und der Monat variable ist gleich _2/
- aber ich weiß nicht, wie man Jahr und Datum, und entfernen Sie anschließend den umgekehrten Schrägstrich in batch-scripting.
- Vielleicht verwenden
wmic
um das Datum zu erhalten. Win32_Localtime locale Agnostiker sowieso. Siehe Methode 2 auf dieser Seite für eine Lösung. Oder möchten Sie einfach zu entfernen mit einem Schrägstrich von einem Variablen Wert, siehe hier für string-Manipulationen im batch-scripting. (Tipp:%var:/=%
entfernen Schrägstriche aus%var%
auf den Zeitpunkt der Bewertung.) Ich entschuldige mich für die Kommissionierung, die Nissen, aber/
ist ein slash, kein backslash./
lehnt sich nach vorne.\
lehnt sich zurück, sehen Sie.
Du musst angemeldet sein, um einen Kommentar abzugeben.
Dann schneiden Sie das Jahr und der Monat Teile falsch von Ihr
DATE
. Da ich nicht weiß, wie das Datum formatiert ist, in Ihrem Gebietsschema, kann ich nur empfehlen Sieecho %DATE%
auf der Kommando-Zeile und zählen Sie die Zeichen richtig, zu erinnern, dass Sie haben zu Beginn mit 0. (wenn Sie dd/mm/yyyy, das wäre 6,4 und 3,2)Hier ist ein stock-script, das ich verwenden, um Datum-Werte. Diese ist erbaut aus dem Vorwort, dass Ihre Lokalisation ist US-Englisch, die Sie benötigen, zu ändern, wenn das nicht Ihr Fall ist.
wmic
ist, dass die Ausgabe unabhängig von regionalen Einstellungen. (siehe hier für eine einfacherewmic
Abfrage das gleiche Ergebnis zu erhalten)