RoboCopy 从网络上复制文件?

RoboCopy 从网络上复制文件?

是否可以使用 RoboCopy 从 Web 下载文件?其语法是什么?以下是我正在尝试的操作:

RoboCopy "http://www.google.com/" "C:\some_folder\" "index.html" /L /V /E /LOG:"C:\some_folder\test_robocopy.log" /R:10 /W:30

错误日志显示错误,似乎表明该文件是一个文件夹,并且它试图击中http://www.google.com作为我所在位置机器上的文件夹。

-------------------------------------------------------------------------------
   ROBOCOPY     ::     Robust File Copy for Windows                              
-------------------------------------------------------------------------------

  Started : Tue Jan 08 10:31:04 2013

   Source : C:\some_folder\http:\www.google.com\index.html\
     Dest : C:\some_folder\index.html\

    Files : *.*

  Options : *.* /V /L /S /E /COPY:DAT /R:10 /W:30 

------------------------------------------------------------------------------

2013/01/08 10:31:04 ERROR 123 (0x0000007B) Accessing Source Directory C:\some_folder\http:\www.google.com\index.html\
The filename, directory name, or volume label syntax is incorrect.

答案1

我能想到的唯一可行方法是创建一个 WebDAV 共享,例如 live.sysinternals.com 上的共享,然后将其作为 UNC(\\yoursite.com\folder)寻址,然后由 WebClient 服务中的 minidirector 来处理它。

但这需要在 Web 服务器上进行特定的配置。

此外,如果您使用的是 PS 3,请调用 Invoke-WebRequest。

编辑:在尝试通过命令行访问 WebDAV 共享之前,还要确保 WebClient 服务正在运行。Windows 资源管理器将按需启动该服务,但 cmd.exe 或 powershell.exe 不会。

答案2

不,这不起作用。在尝试使用 robocopy 之前,您需要使用其他方法从互联网上下载文件。也许wget或类似的端口之一可以满足您的需求,或者您可以像这样在 PowerShell 2.0 中本地下载文件:

$webClient = New-Object System.Net.WebClient
$webURL = "http://www.google.com/index.html"
$filePath = "c:\whatever\index.html"
$webclient.DownloadFile($webURL,$filePath)

相关内容