簡體   English   中英

如何在 cmd 中的雙引號內轉義 %?

[英]How to escape % inside double quotes in cmd?

在 cmd 我正在嘗試做類似的事情

program.exe -command "otherprogram.exe %thing% %path%"

我遇到的問題是我無法弄清楚如何在 % 字符位於雙引號內時對其進行轉義,但由於此參數中的空格,我需要雙引號。 基本上我不希望 cmd 在將參數值傳遞給 program.exe 之前進行變量擴展。

需要明確的是,這直接在 cmd 中,而不是在批處理腳本中。

一個簡單的半解決方案是:

program.exe -command ^"otherprogram.exe %th^ing% %pa^t^h%^"

變量名稱中插入符號的位置是隨機的。

這仍然可能失敗,但僅適用於極少數情況,如果存在名為thi^ngpa^t^h的變量

這看起來很奇怪,但不要逃避百分號。 在變量名中的任何位置放置一個插入符號(每個其他特殊字符的轉義符號): echo %^username%或 `echo %use^rname%。

第一次解析刪除了^ (因為(希望)沒有具有該名稱的變量)。 在命令行上(除了在批處理文件中),一個空變量不顯示任何內容,但變量名稱包括周圍的%

然后任何進一步的解析級別都會接收“正常”變量並對其進行擴展。 證明:

echo %usern^ame%
call echo %usern^ame%

不是您的問題,而是為了完整起見:在批處理腳本中,只需用另一個% %

echo %%username%%
call echo %%username%%

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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