如何模拟"包装脚本"在Windows上?

时间:2014-08-04 15:40:12

标签: windows cmd dos

在Linux上,当我想在启动程序之前准备程序的环境时,我使用了包装器脚本:

 export JAVA_HOME=...
 cd /some/folder
 exec ./tool "$@"

我如何在Windows上执行最后一行,尤其是"$@"

注意:我包装了需要大量参数的命令(例如javamvn),所以我需要一个适用于>的解决方案。 10个论点。

能够exec会很好,但只是一个小问题。

1 个答案:

答案 0 :(得分:3)

可能类似于:

@echo off
setlocal enableextensions
set JAVA_HOME=...
cd ...
start "" .\sometool %*
endlocal

Setlocal将脚本的环境更改本地化(有关详细信息,请参阅setlocal /?),%*表示所有脚本参数'。 start命令是生成可执行文件的cmd.exe命令。

start命令具有奇怪的解析规则;其命令行上的第一个引用字符串被视为控制台窗口标题,如果您没有生成控制台窗口,这是多余的。这意味着像这样的命令不会按预期工作:

start "C:\Program Files (x86)\Microsoft Office\Office14\excel.exe"

如果运行此命令,您将生成一个新的cmd.exe实例,其中带引号的字符串作为其控制台窗口标题,这显然不是预期的。相反,你必须写这个:

start "" "C:\Program Files (x86)\Microsoft Office\Office14\excel.exe"