cmd脚本调用curl写文件报<< was unexpected错误如何解决?
问题解决方法
错误原因
你遇到的语法报错是因为批处理(.cmd)的重定向语法使用错误:
<是输入重定向符号,作用是将后方文件的内容读取输入给前方的命令使用<<是类Unix shell的Here Document语法,Windows原生cmd环境并不支持该写法- 你写的代码完全搞反了「命令输出写入文件」的语法顺序,所以触发了语法报错。
正确代码
你要实现将curl的输出写入指定文件,直接使用输出重定向符号>即可:
curl %1 > "%~dp0#temp"
如果需要每次运行追加内容到文件末尾而不是覆盖原有内容,换成>>即可:
curl %1 >> "%~dp0#temp"
代码说明
- 输出重定向符号
>/>>放在要执行的命令后面,后方跟上要写入的目标文件路径,才是「将命令结果写入文件」的正确语法 - 给路径
%~dp0#temp包裹双引号是为了兼容脚本所在路径存在空格的场景,避免触发意外语法错误 - 如果你不希望curl的请求进度信息被写入文件,可以给curl加静默参数
-s,优化后代码如下:
curl -s %1 > "%~dp0#temp"
内容的提问来源于stack exchange,提问作者obscuredc
相关产品推荐
相关产品推荐

