27

我正在尝试设置下载需要的文件来自动化和安装过程。我每次运行脚本时都会遇到错误,并且从周日开始我已经更改了七种方式,但它仍然给我错误。

脚本是:

  if (test-path $java_path)

   {
   Write-Output "Java already installed. Skipping script"
   exit 0
    }

  else 

    {
      $source = "http://our.server.com/java-installer.zip"
      $destination = "c:\CHPACS"
      $client = new-object System.Net.WebClient
      $client.DownloadFile($source, $destination)

      }

我收到的错误消息是

 Exception calling "DownloadFile" with "2" argument(s): "An exception occurred during a WebClient request."
 At C:\ps_script\testjava.ps1:41 char:31
 +           $client.DownloadFile <<<< ($source, $destination)
 + CategoryInfo          : NotSpecified: (:) [], ParentContainsErrorRecordException
 + FullyQualifiedErrorId : DotNetMethodException

我是否需要创建一个函数才能使其正常工作?

谢谢:

4

3 回答 3

44

如果您查看该DownloadFile方法的 MSDN 文档,您会注意到第二个参数是文件名,而不是目录。因此,如果您重新定义$destination为:

$destination = "c:\CHPACS\java-installer.zip"

那么它应该可以工作。

其次检查您尝试下载的文件是否未打开或当前未执行。如果文件正在使用中,将引发此异常。

于 2012-12-04T23:03:39.310 回答
20

你应该像大卫所说的那样给出一个文件名+该文件夹应该存在。

于 2014-01-16T16:27:20.450 回答
1

在我的情况下,我试图执行脚本的机器上无法访问 URL。必须启用代理规则以将其范围限定为机器以下载文件。

于 2020-12-21T14:45:54.283 回答