Java 通过带有参数的程序运行文件

Java 通过带有参数的程序运行文件,java,batch-file,command,arguments,command-line-arguments,Java,Batch File,Command,Arguments,Command Line Arguments,我的问题是,我似乎无法通过我的程序传递参数。我不知道如何解释清楚,但这里是: 我希望能够通过带有参数的自定义解释器运行脚本文件 例如: C:\>assoc .txt .txt=txtfile C:\>ftype txtfile txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1 AtomScript.exe main.atom->程序运行 当我想通过批处理文件运行它时: main.atom->程序运行 现在,当我想在批处理文件中使用AtomS

我的问题是,我似乎无法通过我的程序传递参数。我不知道如何解释清楚,但这里是:

我希望能够通过带有参数的自定义解释器运行脚本文件

例如:

C:\>assoc .txt
.txt=txtfile

C:\>ftype txtfile
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
AtomScript.exe main.atom->程序运行

当我想通过批处理文件运行它时:

main.atom->程序运行

现在,当我想在批处理文件中使用AtomScript命令通过程序传递参数时:

AtomScript.exe main.atom arg1 arg2->程序使用参数运行

参数被传递。但是,当我想使用简单的main.atom命令运行它时,它不起作用:

main.atom arg1 arg2->程序运行时不带参数


我不知道现在该怎么办。有什么建议吗?

main.atom
不是可执行文件,因此它不能接受任何参数

Windows知道必须启动哪个程序,并会这样做(忽略任何参数)

只有直接启动可执行文件时,才能定义参数(第一个参数是
main.atom

例如:

C:\>assoc .txt
.txt=txtfile

C:\>ftype txtfile
txtfile=%SystemRoot%\system32\NOTEPAD.EXE %1
assoc
定义该扩展名的文件类型(“txtfile”)

ftype
定义此文件类型必须执行的操作(开始记事本)

您可以看到,只有一个参数
%1
(文件名(
main.atom
)。 当然,您可以使用更多参数对其进行扩展(需要以管理员身份运行):

(这在本例中没有多大意义),但我不推荐它(它只是在您的计算机上完成的)。更好地使用“官方方式”:在批处理文件中,执行与命令行完全相同的操作:使用所需参数启动可执行文件:

AtomScript.exe main.atom arg1 arg2    

所以我必须在%*?左右加上引号-啊-很好。如果你在它周围加上引号,它只是一个单独的论点。我从示例中删除了它们(缺点:不可能再使用带空格的参数)。但是,再次强调:这是不推荐的-请谨慎和明智地使用它。是否有任何方法可以使文件成为可执行文件?