簡體   English   中英

如何在 cmd/批處理文件中刪除不帶轉義 (^) 的雙引號?

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

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM