2016-10-02 137 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)。