以下示例似乎不适用于我的 Windows Server 2008 SP2 和 Windows 7 Pro Sp1。
命令:
$shellapp = new-object -com shell.application
$shellapp
输出:
Application Parent
----------- ------
System.__ComObject System.__ComObject
命令:
$zipfile = $shellapp.namespace("c:\temp\file.zip")
$zipfile
输出:没有输出?(我假设它不起作用并且 $zipfile 为空)
命令:
$zipfile.copyhere("c:\temp\file.txt")
输出:
You cannot call a method on a null-valued expression.
At line:1 char:18
+ $zipfile.copyhere <<<< ("file.txt")
+ CategoryInfo : InvalidOperation: (copyhere:String) [], RuntimeException
+ FullyQualifiedErrorId : InvokeMethodOnNull
我尝试重新关联.Zip
以下说明:如何恢复 Windows 默认 Zip 文件功能?。
我也尝试过重新注册,但是regsvr32.dll zipfldr.dll
没有成功。
答案1
这不是创建新的 zip 文件。这是将文件添加到现有 zip 文件。在您的示例中,C:\temp\file.zip 必须已经存在。
编辑:
function New-Zip
{
param([string]$zipfilename)
set-content $zipfilename ("PK" + [char]5 + [char]6 + ("$([char]0)" * 18))
(dir $zipfilename).IsReadOnly = $false
}