在 CALL 语句中传递来自 DOS 批处理脚本的管道字符

Dan*_*Dan 5 dos pipe batch-file call

在 DOS 批处理脚本(需要在 Win 200x 和 Win7 环境中运行)中,我需要将特定字符(带引号)传递给另一个可执行文件;例如

 doparse -delimeter "$"
Run Code Online (Sandbox Code Playgroud)

一般来说,这有效:

 CALL CMD /C "doparse -delimeter "$""
Run Code Online (Sandbox Code Playgroud)

不幸的是,我需要将管道字符指定为分隔符(这是必需的)。我预计以下内容会起作用:

 CALL CMD /C "doparse -delimeter "^|""
Run Code Online (Sandbox Code Playgroud)

但是当我运行脚本时,我根本看不到这一行的任何输出(例如,如果我用一些不存在的名称替换“doparse”,则没有错误消息)。

我尝试了各种转义字符组合,但无法使其正常工作。是否可以?(不幸的是,必须通过批处理脚本完成)。

谢谢

Joe*_*oey 3

以下对我有用:

call delim -delimiter "|"
Run Code Online (Sandbox Code Playgroud)

然后在被调用的批处理中像这样使用它:

setlocal enabledelayedexpansion
set "delim=%~2"
echo Delimiter: !delim!
Run Code Online (Sandbox Code Playgroud)