![RoboCopy 从网络上复制文件?](https://linux22.com/image/603835/RoboCopy%20%E4%BB%8E%E7%BD%91%E7%BB%9C%E4%B8%8A%E5%A4%8D%E5%88%B6%E6%96%87%E4%BB%B6%EF%BC%9F.png)
是否可以使用 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)