2016-10-02 3 views
0

Ich versuche, Git für Excel-Dateien zu verwenden. Allerdings muss ich die Komponenten später entpacken und zippen, um dies zu erreichen. Für diese Aufgabe habe ich ein Skript geschrieben, das MacOS einfach gemacht hat. Da ich selbst nicht mit Windows arbeite, kann ich dieses Skript nicht vollständig in Windows Power Shell-Befehle konvertieren. Wie kann ich den folgenden Bash-Befehl in Windows Power Shell ausführen?Windows Powershell-Äquivalent von Bash-Befehl

find . -type f | xargs zip ../../MyExcelFile.xlsm 

Was ich noch nicht ausprobiert habe, ist das Entpacken der Datei. In Bash gibt es den folgenden Befehl:

unzip MyExcelFile.xlsm -d XML/MyExcelFileXML 

Tut es das gleiche in Windows Power Shell oder wie kann ich das konvertieren?

Danke für Ihre Hilfe!

+0

Ich verstehe nicht, was das mit Git zu tun hat? Zum Erstellen eines komprimierten Archivs verfügt Powershell über den Befehl "Compress-Archive". –

+0

Nicht jedoch PowerShell v5. –

+0

vorschlagen, auch [git-bash] (https://git-for-windows.github.io/) für Windows auschecken – Sundeep

Antwort

1

PowerShell hat keine genaue Entsprechung zu find. Normalerweise würden Sie Get-ChildItem verwenden und die Filterparameter des Befehls find mit einem Where-Object Filter emulieren. In Ihrem Fall zum Beispiel wie folgt aus:

Get-ChildItem . -Recurse | Where-Object { -not $_.PSIsContainer } 

in Powershell v3 oder neuer Sie auch diese besondere Erklärung mit Get-ChildItem allein tun konnte:

Get-ChildItem . -Recurse -File 

Statt xargs Sie würden normalerweise eine ForEach-Object Schleife verwenden (wenn der Downstream-Befehl nicht selbständig aus der Pipeline lesen kann).

Es gibt jedoch keinen eingebauten zip oder unzip Befehl in Windows (zumindest nicht vor PowerShell v5). Sie können entweder die Windows-Ports der verfügbaren Befehle von GnuWin32 verwenden, die Befehle durch einen anderen externen Befehl wie 7-zip ersetzen oder Funktionen schreiben, um die API-Methoden für die Verarbeitung von Zip-Archiven zu verwenden (siehe zB this question).