使用批处理脚本中的参数调用.jar,并在路径中使用通配符

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了使用批处理脚本中的参数调用.jar,并在路径中使用通配符相关的知识,希望对你有一定的参考价值。

尝试使用批处理脚本使用参数在路径中使用通配符调用-jar。如果我手动将其输入CMD,我可以这样做:

for /d %a in ("C:Program Files (x86)Java*") do "%~fainjava.exe" -jar C:DTSBMC3.7.1squirrel-sql-3.7.1-standard.jar C:DTSBMC3.7.1silent3.7.xml

我知道为什么在批处理脚本中不起作用,我需要添加额外的'%',如下所示:

for /d %%a in ("C:Program Files (x86)Java*") do "%%~fainjava.exe" -jar C:DTSBMC3.7.1squirrel-sql-3.7.1-standard.jar C:DTSBMC3.7.1silent3.7.xml

问题是,当我尝试时,CMD线的输出省略了开头'/ d'中的d。不知道为什么会这样,不确定我需要改变什么。修订后的脚本的输出如下所示:

for / %a in ("C:Program Files (x86)Java*") do "%~fainjava.exe" -jar C:DTSBMC3.7.1squirrel-sql-3.7.1-standard.jar C:DTSBMC3.7.1silent3.7.xml

当我手动输入命令(单个'%')时,我得到如下所示的输出:

C:windowssystem32>for /d %a in ("C:Program Files (x86)Java*") do "%~fainjava.exe" -jar C:DTSBMC3.7.1squirrel-sql-3.7.1-standard.jar C:DTSBMC3.7.1silent3.7.xml

C:windowssystem32>"C:Program Files (x86)Javajre1.8.0_152injava.exe" -jar C:DTSBMC3.7.1squirrel-sql-3.7.1-standard.jar C:DTSBMC3.7.1silent3.7.xml

[ Starting automated installation ]
Read pack list from xml definition.
Try to add to selection [Name: Base and Index: 0]
Try to add to selection [Name: Standard and Index: 1]
Try to remove from selection [Name: Optional Plugin - Greenplum and     Index: 2]
Try to remove from selection [Name: Optional Plugin - WIKI table configurations
答案

最终放弃了这个,能够通过powershell使用此命令使其工作:

start-process "C:Program Files (x86)Java*injava.exe" -Argumentlist '-jar',  'C:DTSBMC3.7.1squirrel-sql-3.7.1-standard.jar', 'C:DTSBMC3.7.1silent3.7.xml'

以上是关于使用批处理脚本中的参数调用.jar,并在路径中使用通配符的主要内容,如果未能解决你的问题,请参考以下文章

使用 Visual Basic 脚本和批处理的 Java 作为 Windows 服务

拆分路径并在批处理脚本中取最后一个文件夹名称

CentOS 通用脚本处理jar包程序

使用脚本中的参数调用第二个脚本

延申三大问题中的第一个问题处理---原先shell脚本中启动jar文件命令的配置,附加参数等

jmeter用第三方jar生成参数怎么被引用