我需要使用PowerShell解压缩文件。 我见过大家都这样做的典型方式是通过脚本自动化shell。
$shellApplication = new-object -com shell.application $zipPackage = $shellApplication.NameSpace($zipfilename) $destinationFolder = $shellApplication.NameSpace($destination) $destinationFolder.CopyHere($zipPackage.Items())
这不适用于我,因为服务器核心没有一个shell,所以没有一个自动化。 这给了一个E_FAIL COM错误。
Powershell似乎不能自己做,如果我去第三方,我必须找出一个脚本获取该实用程序到服务器上的方法。 7-Zip是我的目标,但似乎没有脚本下载和安装它。 Sourceforge不断把我吐回HTML文件。
如何在Server 2012 Core中完整脚本解压缩zip文件?
Server 2012自带有Dot.NET 4.5,它有一个具有ExtractToDirectory方法的System.IO.Compression.ZipFile 。 您应该能够从PowerShell中使用它。
这是一个例子。
首先你需要加载ZipFile所在的程序集:
[System.Reflection.Assembly]::LoadWithPartialName("System.IO.Compression.FileSystem") | Out-Null
然后提取内容
[System.IO.Compression.ZipFile]::ExtractToDirectory($pathToZip, $targetDir)
编辑:如果你已经更新到PowerShell 5(Windows Management Framework 5.0),你终于有了本地cmdlet:
Expand-Archive $pathToZip $targetDir