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

Batch file 无法读取批处理文件中的管道字符,batch-file,Batch File,我想在字符串中用空格()替换下划线(\)。但我编写的批处理无法读取管道(|)字符。我试着把(^)字符放在每根管子前面,但没用。下面是我试过的脚本 @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 试试这个: @ECH

我想在字符串中用空格()替换下划线(\)。但我编写的批处理无法读取管道(|)字符。我试着把(^)字符放在每根管子前面,但没用。下面是我试过的脚本

@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
试试这个:

@ECHO OFF
set "string=Transaction_Type|Spend_Source_System|Event_ID"
set "string=%string:_= %"
ECHO "%string%"
pause
@ECHO关闭
SETLOCAL
设置“字符串=交易类型^ |花费|来源|系统^ |事件| ID”
设置“string1=交易类型^ |支出源系统^ |事件ID”
设置“字符串=%string1%”
回显%string%
端部
SETLOCAL
设置“字符串=交易类型^ |花费|来源|系统^ |事件| ID”
设置“string=%string:\uU9=%”
回显%string%
后藤:EOF

是的-'这有点棘手…

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

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