如何在CMD终端发送指定的curl WebDAV PROPFIND命令?
解决Windows CMD中执行WebDAV PROPFIND curl命令的问题
原命令里的<<end ... end是Unix/Linux Shell的here-doc语法,Windows CMD不支持这种写法,这就是你遇到问题的核心原因。以下是几种可行的解决办法:
方法1:改用PowerShell执行
PowerShell支持here-string语法,可以直接适配原命令逻辑:
curl -i -X PROPFIND http://localhost/uploads --upload-file - -H "Depth: 1" @" <?xml version="1.0"?> <a:propfind xmlns:a="DAV:"> <a:prop><a:resourcetype/></a:prop> </a:propfind> "@
方法2:在CMD中使用临时文件
- 先创建一个包含XML内容的文本文件(比如命名为
propfind.xml),内容如下:
<?xml version="1.0"?> <a:propfind xmlns:a="DAV:"> <a:prop><a:resourcetype/></a:prop> </a:propfind>
- 执行curl命令读取该文件发送请求:
curl -i -X PROPFIND http://localhost/uploads --upload-file propfind.xml -H "Depth: 1"
方法3:在CMD中通过管道传递XML内容
用echo命令拼接XML内容,通过管道传给curl(注意<和>需要用^转义,避免被CMD当作重定向符号):
( echo ^<?xml version="1.0"?^> & echo ^<a:propfind xmlns:a="DAV:"^> & echo ^<a:prop^>^<a:resourcetype/^>^</a:prop^> & echo ^</a:propfind^> ) | curl -i -X PROPFIND http://localhost/uploads --upload-file - -H "Depth: 1"
内容的提问来源于stack exchange,提问作者Fred Little
相关产品推荐
相关产品推荐

