2013-02-02 78 views
0

我有這個字符串,稱爲str,它可能看起來像這個XinfoX。我想要一個使用批處理的命令,用這個符號代替'X'|'' (管道符號)。我已經嘗試過,但cmd不斷關閉/崩潰。用字符串批次中的管道替換符號

在此先感謝

+0

你能發表你試過的代碼嗎? –

+0

推測你正在嘗試類似'set var =%var:X = |%'。你應該顯示失敗的代碼。 – dbenham

回答

0

使用變量編輯/替換見here的細節

set str=XinfoX 
echo %str:X=^|% 

C:\>echo %str:X=^|% 
|info| 
0

你的命令崩潰,因爲|字符函數作爲管道運營商。但是,您想將其用作文字字符。角色必須被轉義或引用。

set str=XinfoY 

:: using quotes 
set "str=%str:X=|%" 

:: using escape 
set str=%str:Y=^|% 

如果您的字符串包含引號,以致某些字符串被引用而有些不引用,則情況會變得複雜。解決方案是使用延遲擴展。

setlocal enableDelayedExpansion 
set str="Xinfo1X"info2X 
set "str=!str:X=|!"