You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

批处理文件中CURL含空格特殊字符的字符串获取失败问题

解决批处理中CURL输出存入变量丢失内容的问题

这个问题我太熟了!本质是FOR /F命令的默认行为在搞鬼——它默认会把空格、制表符、换行符当作内容分隔符,所以只提取了输出字符串里第一个空格前的部分,也就是你看到的e-e。

最优解决方案

修改FOR /F的参数,强制它读取整行内容(包含所有空格),命令如下:

FOR /F "delims=" %%I IN ('curl.exe -s -S %URL%') DO (SET "W=%%I")

关键细节解释

  • "delims=":这个参数告诉FOR /F不要使用任何分隔符,这样整行输出都会被当作一个完整的单元赋值给变量%%I。
  • SET "W=%%I":用引号包裹赋值语句,可以避免如果输出内容末尾有空格被意外截断,同时能更好地处理包含特殊字符的内容。

额外说明

如果你的CURL输出有多行内容,上面的命令会把最后一行的内容存入变量W(因为每次循环都会覆盖之前的赋值)。如果需要保留所有行,可以改成追加模式:

SETLOCAL EnableDelayedExpansion
SET "W="
FOR /F "delims=" %%I IN ('curl.exe -s -S %URL%') DO (SET "W=!W!%%I")
ENDLOCAL & SET "W=%W%"

这里需要开启延迟变量扩展,才能在循环中正确拼接变量内容。

内容的提问来源于stack exchange,提问作者John Donvan

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.28 06:36:31