Expand/Compress Powershell

Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Rene42

Erfahrenes Mitglied
Ich wollte mich mal in die SpreadsheetML einarbeiten, da ich die Idee Excel mit xml zu beschreiben toll finde.

Doch schon der Anfang scheitert. Ich benenne Exceldatei manuell in Zip um und entpacke manuell. Danach der Weg manuell zurück. Alles Top.
Sofern ich beim zippen die Kompressionsstärke 0-Speichern nehme.

Benenne ich manuell um und nehme Expand-Archiv und Compress-Archiv ist die Exceldatei später kaputt. Ich habe mit dem Switch -CompressionsLevel NoCompression verwucht die Einstellung 0-speichern nachzustellen. Doch ohne Erfolg.
Die Datei verliert in dem Prozess auch 2kb von 8 auf 6.

Habt ihr eine Idee wie ich Powershell zum Verhalten wie beim manuellen zippen überreden kann?
 
Das liegt daran, dass Excel-Dateien als ZIP eben nicht Compression-Level 0 haben
schau mal auf meinen Screenshot von 7Zip in Spalte "Verfahren" bzw. "Grösse"/"Gepackte Grösse"
Was aber nicht heisst, dass "Fastest" dann funktioniert!
Rumprobieren. Vielleicht ist es sogar Optimal oder was auch immer
1694071455765.png
 
OK, hab rumgespielt
Frische Mappe erzeugt. Irgendow was reingeschrieben, als Mappe1.xlsx gespeichert.
Manuell im FileExplorer von xlsx nach zip umbenannt
Dann entpackt mit 7ZIP --> erzeugt nen Ordner "mappe1"mit entsprechenden Unterordnern
Der Trick ist anscheinend die Angabe von "c:\temp\mappe1\*" das letzte * !
Das besagt: Geh zu Ordner c:\temp\mappe1, und archiviere alles, was da drin ist, OHNE den Wurzel-Ordner zu speichern
compress-archive -compressionlevel fastest "c:\temp\mappe1\*" "mappe1.zip"
manuell von ZIP nach xlsx umbenannt, doppelclick, Excel springt auf, alles da wo es sein soll. Kein Fehler

EDIT: Noch ein Test mit entpacken mit Expand-Archive anstatt 7ZIP.
Dein Fehler war wohl der fehlende Platzhalter im Source-Pfad
wenn ich den weglasse und nur
compress-archive -compressionlevel fastest "c:\temp\mappe1" "mappe1.zip"
mache, erhalte ich nach umbenennen auch nen Fehler von Excel
 
Hallo Zvoni,
das Geheimnis lag tatsächlich daran, dass ich das Compress-Archiv mit einem * am Ende aufrufen muss.
Da wäre ich ja nie drauf gekommen. Vielen Dank.
 
Status
Dieses Thema wurde gelöst! Zur Lösung gehen…

Neue Beiträge

Zurück