[英]How to remove double quotes without escape (^) in cmd/ batchfile?
注意:由于 OP 是新用户,我正在使用可重现的详细信息编辑问题,以免它被关闭。 这是一个很好的问题,但最初令人困惑。
Windows 用户名是:jhon^smith
ECHO %username%
output : jhonsmith
我的期望:
jhon^smith
如果我使用:
echo "%username%"
那么输出是:
"jhon^smith"
如何删除双引号但保留插入符号,这实际上是用户名的一部分?
这应该有效:
for /f %a in ("%username%") do echo %a
输出:
jhon^smith
(顺便说一句:应该拼写为john^smith
但没关系。)
解释:
在命令echo %username%
中, cmd.exe
将%username%
替换为其实际内容,因此命令变为echo jhon^smith
。 然后对其进行解析,将^
处理为转义字符,因此它将^s
替换为s
。
在for /f %a in ("%username%") do echo %a
命令中,带引号的字符串被视为不带引号的字符串,并且不执行^
解析。 for /?
更多细节。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.