0

我有这个字符串,叫它str,可能看起来像这个XinfoX。我想要一个命令,使用批处理,用这个符号'|'替换'X' (管道符号)。我已经尝试过了,但是 cmd 不断关闭/崩溃。

提前致谢

4

2 回答 2

0

使用变量编辑/替换请参阅此处了解详细信息

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

C:\>echo %str:X=^|%
|info|
于 2013-02-02T13:53:38.493 回答
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=|!"
于 2013-02-02T14:35:32.873 回答