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 に答える