用字符串批处理中的管道替换符号

时间:2013-02-02 13:33:24

标签: batch-file output

我有这个字符串,称之为str,这可能看起来像是这个XinfoX。我想要一个命令,使用批处理,用这个符号替换'X'|' (管道符号)。我试过这个,但cmd一直关闭/崩溃。

提前致谢

2 个答案:

答案 0 :(得分:0)

使用变量编辑/替换有关详细信息,请参阅here

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

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

答案 1 :(得分: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=|!"