【发布时间】:2016-11-22 14:37:47
【问题描述】:
我正在尝试获取一个变量,将其放在两个集合字符串之间,最后在 Chrome 中打开连接的字符串。但是,我认为部分字符串存在问题是由于使用了特殊字符。
@echo off
set loc=%1
set link1=https://query.yahooapis.com/v1/public/yql?q=select * from geo.places where text='
set link2='&format=json
set linkdone=%link1%%loc%%link2%
"chrome.exe" "%linkdone%"
link2 ('&format=json) 在这里出现问题,当我在设置后回显时。这是一个空字符串,批处理继续回显invalid drive specification,这是由于我假设错误读取link2。
我尝试将其转义为^'^&format^=json,但它似乎不起作用。其余代码(尤其是没有转义字符的 link1)似乎工作正常。
【问题讨论】:
-
如果您遵循以下语法,则无需转义:
set "VAR=value"(注意引号);由于最后的命令行也包含了引用的变量值,所以还是不需要转义;特殊字符放在""中时会失去其特殊含义;最后,您应该声明%~1,而不是%1... -
不确定您是否必须在
select * from geo.places where text=的查询中为浏览器转义某些字符,例如%20用于 空格,或%3D用于=,比如……
标签: batch-file escaping