无法读取批处理文件中的管道字符

时间:2014-02-21 13:32:01

标签: batch-file

我想用字符串中的空格()替换下划线(_)。但是我写的批处理不能读取管道(|)字符。我尝试在每个PIPE之前放置(^)字符,但它不起作用。下面是我试过的脚本。

@ECHO OFF
set string=Transaction_Type|Spend_Source_System|Event_ID
set string1=Transaction Type|Spend Source System|Event ID
set string=%string1%
ECHO %string%
pause

3 个答案:

答案 0 :(得分:2)

试试这个:

@ECHO OFF
set "string=Transaction_Type|Spend_Source_System|Event_ID"
set "string=%string:_= %"
ECHO "%string%"
pause

答案 1 :(得分:0)

@ECHO OFF
SETLOCAL
set "string=Transaction_Type^|Spend_Source_System^|Event_ID"
set "string1=Transaction Type^|Spend Source System^|Event ID"
set "string=%string1%"
ECHO %string%
endlocal
SETLOCAL
set "string=Transaction_Type^|Spend_Source_System^|Event_ID"
set "string=%string:_= %"
ECHO %string%

GOTO :EOF

是的 - '有点棘手......

答案 2 :(得分:0)

我推荐foxidrive解决方案的第一部分,但对于输出,我会使用延迟扩展,因为你不再需要字符串周围的引号。

@ECHO OFF
setlocal EnableDelayedExpansion
set "string=Transaction_Type|Spend_Source_System|Event_ID"
set "string=!string:_= !"
echo !string!
相关问题