如何删除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 /?了解更多详细信息。

最新更新