"带有"2"参数的异常调用"DownloadFile":"WebClient请求期间发生异常".

use*_*439 15 powershell

我正在尝试设置下载需要文件以自动化和安装过程.我一直在运行脚本时遇到错误,而且我已经从周日七种方式改变了它,它仍然给我错误.

  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)

      }
Run Code Online (Sandbox Code Playgroud)

我得到的错误消息是

 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
Run Code Online (Sandbox Code Playgroud)

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

谢谢:

Dav*_*vid 29

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

$destination = "c:\CHPACS\java-installer.zip"
Run Code Online (Sandbox Code Playgroud)

那它应该工作.

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

  • 还值得一提的是,目标文件的完整路径是必需的。我最初在使它与相对亲戚一起工作时遇到问题。 (2认同)
  • 如果您无法写入目标文件,似乎也会发生这种情况.我被另一个进程锁定,无法覆盖. (2认同)
  • 在搜索相同的错误时偶然发现了这个答案,但当目标是带有文件名的完整路径时,我仍然收到错误消息。 (2认同)

CH8*_*H81 13

您应该提供一个文件名,如David所说+该文件夹应该存在.

  • 感谢"文件夹应该存在" - 完全是我的情况! (3认同)