使用传递给当前执行的批处理文件的参数调用另一个程序



我的用例:有一个repl可执行文件scala.bat,它接受一些参数,其中一个参数允许将它指向在启动时运行的配置文件。我将scala.bat重命名为scala-original.bat,并从scala.bat:内部调用scala-original.bat

@echo off
scala-original.bat -i C:Progra~2scalabintest-config.scala

如何将调用scala.bat的原始参数传递给scala-original.bat?它们应该添加在的末尾

scala-original.bat -i C:Progra~2scalabintest-config.scala

例如,调用:

scala.bat -nc

应该运行:

scala-original.bat -i C:Progra~2scalabintest-config.scala -nc

现在,我们可以忽略双重指定-i部分。

对于我的用例,使用别名也可能是一种解决方案,如中所示https://stackoverflow.com/a/21040825/750216,例如:

@echo off
doskey scala=scala-original.bat -i C:Progra~2scalabintest-config.scala $*

%*是"我的所有参数(当前运行的批处理文件)"。(在批处理文件中尝试echo %*)。这使得将它们传递到下一个批处理文件变得非常容易:

scala-original.bat -i C:Progra~2scalabintest-config.scala %*

最新更新