我知道有很多類似的問題,但仍然無法使其作業。
我有一個接受多個引數的簡單批處理,其中一個是可能包含特殊字符的密碼。
批處理應該運行一些帶有發送到批處理的引數的 .exe。test.bat param1 param2 !@#$%^&*()_
我應該如何處理帶有特殊字符的引數?
我嘗試使用此代碼并使用 ^^ ^& 等轉義特殊字符。
SET PASSWORD=%3
SET "PASSWORD=%3"
setlocal enabledelayedexpansion
SET "PASSWORD=%3"
echo !PASSWORD!
uj5u.com熱心網友回復:
要點:
- 雙引號引數
Arg1 Arg2 "!@#$%~"^&*()_ " - 在啟用延遲擴展之前定義變數以保留
!字符和字符后面/之間的任何!字符。 - 對變數名開頭到變數內容結尾的字串進行
~雙引號,并在擴展引數變數的賦值程序中使用修飾符去除周圍的雙引號。 - 在定義 IE: 期間使用脫字符轉義,
Set^ "Arg3=%~3"以防止出現不平衡的雙引號。
@Echo off
Set^ "Arg3=%~3"
IF Defined Arg3 (
Setlocal EnableDelayedExpansion
Echo(!Arg3!
)
Endlocal
轉載請註明出處,本文鏈接:https://www.uj5u.com/qukuanlian/324282.html
