我需要将文件从 Windows 2003 服务器复制到 WebDAV 文件夹(如果有必要,则在同一台服务器上)。此操作将通过计划任务执行的批处理脚本执行。我已在服务器上启用了 WebClient 服务。
到目前为止我已经确定我可以这样做:
net use x: http://host/path
copy c:\path\myfile.txt x:
net use x: /delete
1) 有没有比创建临时映射驱动器更简单的方法?当没有用户登录时,它会通过批处理文件工作吗?
2) 我需要了解哪些有关在服务器上启用 WebClient 服务的信息?以前该服务是禁用的,我认为这是默认设置。
答案1
自由的温SCP(适用于 Windows)支持 WebDAV(和 WebDAVS). WinSCP 也支持脚本/命令行操作。
通过 WebDAV 上传文件的 WinSCP 脚本示例:
open http://[email protected]/
put file.txt /path/
close
将脚本保存到文件(例如script.txt
)并运行:
winscp.com /script=script.txt
你也可以把所有内容放在一行上:
winscp.com /command "open http://[email protected]/" "put file.txt /path/" "close"
有关使用 WinSCP 编写脚本的介绍,请参阅:
https://winscp.net/eng/docs/guide_automation
WinSCP GUI 可以生成脚本模板为你。
(我是 WinSCP 的作者)
答案2
为什么,哦,为什么(如果它在同一台服务器上)你不从本地文件夹复制到本地文件夹?
copy c:\path\myfile.txt c:\path\to\www-root\subdir\destination\
复制文件后,您可能需要重新启动 IIS/Apache(或其他程序),但很可能不需要。
答案3
DavCopy 是一个用于将文件推送到 WebDAV 的命令行工具。它支持批处理作业的命令行身份验证,因此它可以在您未登录时运行。
不需要 webclient 服务来运行该工具。
它也使用简单的语法。类似于 robocopy。
答案4
您可以尝试使用pushd
和popd
,这有助于自动安装驱动器。如果可能,您也可以尝试使用 PowerShell。