[英]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.