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.