6

我从互联网上获得了以下脚本,当我尝试运行时,它给了我一个错误。

#script
#unzip folder

$shell_app = new-object -com shell.application
$filename = "test.zip"
$zip_file = $shell_app.namespace("C:\temp\$filename")

#set the destination directory for the extracts
$destination = $shell_app.namespace("C:\temp\zipfiles")

#unzip the file
$destination.Copyhere($zip_file.items())

- - 错误信息

    You cannot call a method on a null-valued expression.
At line:1 char:22
+ $destination.Copyhere <<<< ($zip_file.items())
    + CategoryInfo          : InvalidOperation: (Copyhere:String) [], RuntimeException
    + FullyQualifiedErrorId : InvokeMethodOnNull
4

1 回答 1

8

您需要在设置 $destination 变量之前创建“c:\temp\zipfiles”文件夹,这种草率的方式但它会完成这项工作:)

#script
#unzip folder

$shell_app = new-object -com shell.application
$filename = "test.zip"
$zip_file = $shell_app.namespace("C:\temp\$filename")

#set the destination directory for the extracts
if (!(Test-Path "C:\temp\zipfiles\")) { 
    mkdir C:\temp\zipfiles
}
$destination = $shell_app.namespace("C:\temp\zipfiles")

#unzip the file
$destination.Copyhere($zip_file.items())
于 2013-01-24T09:35:37.670 回答