![Board logo](images/default/logo.gif)
标题: [文本处理] cmd双引号嵌套双引号出问题 [打印本页]
作者: wanghan519 时间: 2023-9-19 05:52 标题: cmd双引号嵌套双引号出问题
从浏览器开发模式,网络,里复制一条请求为,适用于cmd的curl命令,比如:- curl "https://club.excelhome.net/plugin.php?id=k_misign:sign" ^
- -H "authority: club.excelhome.net" ^
- -H "sec-ch-ua-platform: ^\^"Windows^\^"" ^
- -H "sec-fetch-dest: document"
复制代码
把这段放到cmd里运行会出错,发现其他行都比较正常,但"Windows"这种双引号里嵌套双引号的行会出错,^放在最后也不能换行,如果echo这行结果也很奇怪,请问这种嵌套双引号的情况该如何写,谢谢
作者: 77七 时间: 2023-9-19 10:09
- -H "sec-ch-ua-platform: "Windows"" ^
- -H "sec-ch-ua-platform: \"Windows\"" ^
- -H "sec-ch-ua-platform: ^\^"Windows^\^" ^
- -H "sec-ch-ua-platform: ^\^"Windows^\^""" ^
复制代码
- @echo off
- echo ""^
- 123
- echo=
- echo "^
- 123
- echo=
- echo "^"^
- 123
- echo=
- echo "^""^
- 123
- pause
复制代码
我不是很了解,具体可以参考一下buyiyang大佬的帖子 ,大概是一类问题,引号的处理for /f 与 cmd /c 的 command 处理(建议站长移到教程版块)
作者: wanghan519 时间: 2023-9-19 10:28
回复 2# 77七
好的,多谢,我去学习
作者: Five66 时间: 2023-9-19 15:56
额,cmd双引号嵌套解析规则莫名奇妙的,有时候最短,有时候递归,有时候还得看个数....
不用双引号引起来直接^转义感觉还简单点
作者: wanghan519 时间: 2023-9-19 16:20
回复 4# Five66
是啊,被搞的头大,最后发现edge调试里复制出来的curl命令,存在上面这个问题,firefox复制出来的没问题,不求甚解凑合用吧,这双引号真的太奇怪了。。。
作者: buyiyang 时间: 2023-9-19 20:48
回复 2# 77七
一直以为,没有开启变量延迟的情况下,一对双引号内的特殊字符才不会被处理,原来只要有左"开头(直到右"或语句末)就行了复制代码
所以左"后的转义符无效,"^"Windows^"",左"前可以转义,复制代码
作者: buyiyang 时间: 2023-9-19 20:51
回复 4# Five66
我感觉都是最短,哪些时候会递归、看个数?
作者: Five66 时间: 2023-9-19 23:10
回复 7# buyiyang
只是个人的理解,调用外部命令的参数的双引号的话还好,内部命令的就不知怎么回事了
比如
set "a=""""""&"b"&c"
感觉就像括号套娃匹配那样:set (a=((()&)b)&c)
但是改成
set "a="""""&"b&c"
set "a=""""&"b&c"
感觉像计算了双引号的数量,然后配对的双引号
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |