Führen Sie den Befehl "tar -cf" aus der Batchdatei "senden an" aus, um schnell eine .tar.gz-Datei zu erstellen

Führen Sie den Befehl "tar -cf" aus der Batchdatei "senden an" aus, um schnell eine .tar.gz-Datei zu erstellen

Ich installierte dieGNU Tar für Windowsum das Tarnen von Dateien zu beschleunigen, damit ich nicht zweimal 7zip öffnen muss, um eine Datei zu tarnen und dann zu gzippen.

Um den Vorgang noch weiter zu beschleunigen, habe ich versucht, eine Sende-An-Batchdatei zu schreiben, die folgendermaßen aussieht:

tar -cf %1.tar.gz %1

Der Befehl funktioniert im Terminal einwandfrei (wenn ich es in meinem Arbeitsverzeichnis öffne) und würde ungefähr so ​​aussehen:

tar -cf myfile.tar.gz myfile.txt

Wenn ich jedoch die Sende-an-Batchdatei ausführe, lautet die Eingabe:

tar -cf C:\path\to\myfile.txt.tar.gz C:\path\to\myfile.txt

Ich erhalte diesen Fehler von Tar:

C:\path\to\my>tar -cf C:\path\to\my\myfile.txt.tar.gz C:\path\to\my\myfile.txt
tar: Cannot open C:\path\to\my\myfile.txt.tar.gz: Function not implemented
tar: Error is not recoverable: exiting now

Ich bin nicht wirklich sicher, was hier falsch ist, aber ich bin sicher, dass es kein Problem mit Tar ist, sondern eher eine Verwechslung mit Pfaden und Dateinamen.

Ich habe mich gefragt, ob es eine schöne und einfache Möglichkeit gibt, dies mit einem Batch-Skript zu tun (vielleicht NUR den Dateinamen als Argument zu erhalten und nicht den vollständigen Pfad) oder ob ich etwas Aufwändigeres tun muss?

Antwort1

Mir scheint, dass Tar keinen vollständigen Pfad zum zu erstellenden Archiv akzeptiert. Sie sollten Ihre Batchdatei so ändern, dass sie zuerst per CD in den gewünschten Ordner wechselt, z. B.

cd "%~dp1" 

und dann verwenden

tar -cf "%~n1.tar.gz" "%~nx1"

Anführungszeichen werden hier verwendet, um Leerzeichen enthaltende Namen zu berücksichtigen.

verwandte Informationen