在Windows 2003上通过命令行将文件复制到WebDAV

我需要将文件从Windows 2003服务器复制到WebDAV文件夹(如果重要,请在同一台服务器上)。 此操作将通过通过计划任务执行的批处理脚本执行。 我在服务器上启用了WebClient服务。

到目前为止,我已经确定我可以这样做:

net use x: http://host/path copy c:\path\myfile.txt x: net use x: /delete 

1)有没有比创build临时映射驱动器更简单的方法? 当没有用户login时,它将通过batch file工作吗?

2)有什么我应该知道在我的服务器上启用WebClient服务? 以前它被禁用,我认为是默认的。

免费的WinSCP(用于Windows)支持WebDAV(和WebDAVS)在最新的testing版本(5.6和更高版本)。 WinSCP也支持脚本/命令行操作。

示例WinSCP脚本通过WebDAV上传文件:

 open http://user@webdav.example.com/ put file.txt /path/ close 

将脚本保存到一个文件(例如script.txt )并运行,如:

 winscp.com /script=script.txt 

你也可以把所有内容放在一行上:

 winscp.com /command "open http://user@webdav.example.com/" "put file.txt /path/" "close" 

有关使用WinSCP编写脚本的介绍,请参阅:
https://winscp.net/eng/docs/guide_automation

(我是WinSCP的作者)

为什么,哦,为什么,(如果它在同一台服务器上)不要从本地文件夹复制到本地文件夹?

 copy c:\path\myfile.txt c:\path\to\www-root\subdir\destination\ 

复制文件后,您可能需要重新启动IIS / Apache(或其他),但很可能不会。

DavCopy是一个将文件推送到WebDAV的命令行工具 。 它支持批量作业的命令行authentication,所以它可以在你没有login时运行。

webclient服务不需要运行该工具。

它也使用简单的语法。 类似于robocopy。 句法!

您可以尝试使用pushdpopd ,这有助于自动安装驱动器。 如果可能的话,您也可以尝试使用PowerShell。