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.

InformationsquelleAutor user2443476 | 2014-12-04
Schreibe einen Kommentar