为什么批处理文件执行的行与其包含的行不同

为什么批处理文件执行的行与其包含的行不同

我在一个 bat 文件中输入了这行代码(暂停一下看看输入了什么)

    start my_program -m y -f %s_%d_fix -z n
    pause

它最终运行这个

    start my_program -m y -f d_fix -z n

如您所见,%s_% 部分被删除了,
我尝试查找 % 是否导致读取行不同,但在 cmd 中输入时
启动的程序会获取不正确的参数,对此有什么看法?谢谢。

答案1

Windows Cmd 和 MS-DOS Command.com 用于%指示环境变量。 在您的例子中,%s_%被解释为变量扩展(用作s_变量的名称),并扩展为空字符串。

为了保持%符号不变,请使用%%s_%%d_fix

相关内容