[英]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^ng
或pa^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.