1
在Windows命令提示符中,我試圖用字符串%20
替換set string=Hello World
中的空格。天真地試圖用字符串字面量20%這樣的:如何用cmd.exe中的百分比字符替換?
set string=%string: =%20%
結果HelloWorld20%
。嘗試使用轉義字符^
這樣的:
set string=%string: =^%20%
也導致HelloWorld20%
。試圖通過像這樣加倍逃避%
:
set string=%string: =%%20%
結果HelloWorld%20%
。我還試圖用另一個變量做替換這樣的:
set r=%20
set string=%string: =%r%%
導致HelloWorldr%%
。
我找到了this,它處理變量中字符百分比的轉義。我還發現this,它處理百分號字符的轉義輸入。但似乎都不適用於字符串替換。
A tutorial/docu page for the Windows cmd.exe我在網上發現告訴我我有正確的語法,但不包括替換百分比字符。
閱讀這些之後,我想:
setlocal EnableDelayedExpansion
set string=!string: =%20!
導致!string: =%20!
。
我不知道,你能幫忙嗎?
導致'你好STR2世界'。請記住:我在cmd.exe中這樣做不是來自'.bat'文件 – nfs
@SheridanVespo你是對的,我做了一個編輯。 Ich liebe denScheiß! ':-)' – Endoro
絕對救生員。你會介意評論這個例子,因爲for()有點黑魔法。附:對於那些想要在批處理腳本中執行此操作的用戶,請訪問:https://stackoverflow.com/questions/2772456/string-replacement-in-batch-file。 –