2016-10-02 139 views
0

我正嘗試使用git來處理Excel文件。但是,我必須稍後解壓縮組件並將它們壓縮到一起以完成此操作。爲了這個任務,我寫了一個腳本,在MacOS上變得很簡單。由於我自己不使用Windows,因此我不知道如何將此腳本完全轉換爲Windows Power Shell命令。如何在Windows Power Shell中執行以下bash命令?Windows Powershell相當於bash命令

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

我還沒有試過,是解壓縮文件。在bash中有以下命令:

unzip MyExcelFile.xlsm -d XML/MyExcelFileXML 

它是否在Windows Power Shell中執行相同操作,或者如何轉換它?

感謝您的幫助!

+0

我不明白這與git有什麼關係?至於創建一個壓縮存檔,Powershell有一個'Compress-Archive'命令。 –

+0

雖然沒有在PowerShell v5之前。 –

+0

建議也檢查[git-bash](https://git-for-windows.github.io/)for windows – Sundeep

回答

1

PowerShell沒有與find完全等價。通常您使用Get-ChildItem並使用Where-Object過濾器模擬find命令的過濾器參數。在你的情況,例如像這樣:

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

在PowerShell中V3或更高版本,你也可以做到這一點特別聲明與Get-ChildItem獨自:

Get-ChildItem . -Recurse -File 

相反的xargs你通常使用ForEach-Object環路(如果下游命令無法自己讀取管道)。

雖然(至少在PowerShell v5之前沒有),但在Windows中沒有內建的zipunzip命令。您可以使用可從GnuWin32獲得的這些命令的Windows端口,用另一個外部命令(如7-zip)替換命令,或編寫函數以利用API方法處理zip歸檔文件(請參閱this question)。