DOS下處理含特殊字元[如:&]的字串
阿新 • • 發佈:2018-12-31
這兩天閒著蛋疼[等面試通知中...],突然想寫一個認證學校億郵閘道器的指令碼,這樣就不用每次輸入長長的使用者名稱和密碼了。寫的時候遇到了一些個大大小小的問題[DOS指令碼是這兩天現學的,菜鳥中的菜鳥...],比如在處理含有特殊字元的的字串時,搞死我了。因為在模擬網頁提交資訊的時候,有個字元‘&’,它本身在DOS中有著特殊的功能,所以DOS在遇到這個符號時,先把它當自己人給用了,也TM不考慮考慮我的感受。
問題大致簡化成這樣,我本是這麼寫的:
set var=12&345
echo %var%
這樣寫肯定不行啦,Pass掉了,後來聽說用轉義符號'^',set var=12^&345,還是不行,
不過直接echo的話可以[Echo 12^&345]
但不是我想要的答案。然後又有人說用引號,好的
OK,貌似可以,But這樣字串就變成了““12&345””,可是我不要引號啊,[其實這樣處理我的認證指令碼就可以完成了,但帶著我不想要的引號,心裡不爽,就此打住?不是我的Style]。
繼續搞這個問題,參考了貼子【點選開啟連結】用到了開啟延遲變數這個東西,搞定了[要在指令碼中完成,直接在DOS介面實驗的話不行]
setlocal enabledelayedexpansion
set var=12^&345
echo !var!
endlocal
舒口氣,This exactly is what I want!
====================================【分割線】==========================================
set str=123^^^&456
echo %str%
這也是一種解決辦法,^^^&這是個什麼說法?待搞明白中……