[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] cmd双引号嵌套双引号出问题

从浏览器开发模式,网络,里复制一条请求为,适用于cmd的curl命令,比如:
  1. curl "https://club.excelhome.net/plugin.php?id=k_misign:sign" ^
  2.   -H "authority: club.excelhome.net" ^
  3.   -H "sec-ch-ua-platform: ^\^"Windows^\^"" ^
  4.   -H "sec-fetch-dest: document"
复制代码
把这段放到cmd里运行会出错,发现其他行都比较正常,但"Windows"这种双引号里嵌套双引号的行会出错,^放在最后也不能换行,如果echo这行结果也很奇怪,请问这种嵌套双引号的情况该如何写,谢谢

回复 7# buyiyang


    只是个人的理解,调用外部命令的参数的双引号的话还好,内部命令的就不知怎么回事了
比如
set "a=""""""&"b"&c"
感觉就像括号套娃匹配那样:set (a=((()&)b)&c)
但是改成
set "a="""""&"b&c"
set "a=""""&"b&c"
感觉像计算了双引号的数量,然后配对的双引号
1

评分人数

TOP

回复 4# Five66


    我感觉都是最短,哪些时候会递归、看个数?

TOP

回复 2# 77七


    一直以为,没有开启变量延迟的情况下,一对双引号内的特殊字符才不会被处理,原来只要有左"开头(直到右"或语句末)就行了
  1. echo,"&|^
复制代码
所以左"后的转义符无效,"^"Windows^"",左"前可以转义,
  1. echo,^"&|^
复制代码

TOP

回复 4# Five66


    是啊,被搞的头大,最后发现edge调试里复制出来的curl命令,存在上面这个问题,firefox复制出来的没问题,不求甚解凑合用吧,这双引号真的太奇怪了。。。

TOP

额,cmd双引号嵌套解析规则莫名奇妙的,有时候最短,有时候递归,有时候还得看个数....
不用双引号引起来直接^转义感觉还简单点
1

评分人数

TOP

回复 2# 77七


    好的,多谢,我去学习

TOP

  1.   -H "sec-ch-ua-platform: "Windows"" ^
  2.   -H "sec-ch-ua-platform: \"Windows\"" ^
  3.   -H "sec-ch-ua-platform: ^\^"Windows^\^" ^
  4.   -H "sec-ch-ua-platform: ^\^"Windows^\^""" ^
复制代码

  1. @echo off
  2. echo ""^
  3. 123
  4. echo=
  5. echo "^
  6. 123
  7. echo=
  8. echo "^"^
  9. 123
  10. echo=
  11. echo "^""^
  12. 123
  13. pause
复制代码



我不是很了解,具体可以参考一下buyiyang大佬的帖子 ,大概是一类问题,引号的处理for /f 与 cmd /c 的 command 处理(建议站长移到教程版块)
2

评分人数

bat小白,请多指教!谢谢!

TOP

返回列表