Windows Powershell相当于bash命令
问题描述:
我正尝试使用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中执行相同操作,或者如何转换它?
感谢您的帮助!
答
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中没有内建的zip
或unzip
命令。您可以使用可从GnuWin32获得的这些命令的Windows端口,用另一个外部命令(如7-zip)替换命令,或编写函数以利用API方法处理zip归档文件(请参阅this question)。
我不明白这与git有什么关系?至于创建一个压缩存档,Powershell有一个'Compress-Archive'命令。 –
虽然没有在PowerShell v5之前。 –
建议也检查[git-bash](https://git-for-windows.github.io/)for windows – Sundeep