我想用字符串中的空格()替换下划线(_)。但是我写的批处理不能读取管道(|)字符。我尝试在每个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
答案 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!