使用 `start` 在 Windows 批处理文件中使用双引号启动进程的副作用
Side-effect of using `start` for launching a process in a Windows batchfile using double quotes
我正在开发 Windows 系统,该系统用于在批处理文件中启动以下命令:
"C:\...\java" -Xnoclassgc -noverify -XX:NewSize=32m ... -classpath ... <Main_Class> <list of parameters>
由于类路径存在一些问题,我将其更改为:
set Variable="C:\...\java" -Xnoclassgc -noverify -XX:NewSize=32m ... -classpath ... <Main_Class> <list of parameters>
start %Variable%
现在我收到错误消息 The system cannot find the file -Xnoclassgc.
这是由于 start
命令造成的吗,是否还有其他一开始看不到的副作用(堆大小或其他不再考虑的限制,...)我可以吗在保持 start
命令的同时解决这个问题?
来自http://www.computerhope.com/starthlp.htm:
Windows Vista and later syntax
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED]
[/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL]
[/NODE ] [/AFFINITY ] [/WAIT] [/B]
[command/program] [parameters]
这意味着如果start的第一个参数是双引号,那么它就是新DOS框的标题,第二个参数代表要执行的文件。
所以在start
之后再添加一个双引号字符串:
set Variable="This is the title of the DOS box" "C:\...\java" -Xnoclassgc -noverify -XX:NewSize=32m ... -classpath ... <Main_Class> <list of parameters>
start %Variable%
我正在开发 Windows 系统,该系统用于在批处理文件中启动以下命令:
"C:\...\java" -Xnoclassgc -noverify -XX:NewSize=32m ... -classpath ... <Main_Class> <list of parameters>
由于类路径存在一些问题,我将其更改为:
set Variable="C:\...\java" -Xnoclassgc -noverify -XX:NewSize=32m ... -classpath ... <Main_Class> <list of parameters>
start %Variable%
现在我收到错误消息 The system cannot find the file -Xnoclassgc.
这是由于 start
命令造成的吗,是否还有其他一开始看不到的副作用(堆大小或其他不再考虑的限制,...)我可以吗在保持 start
命令的同时解决这个问题?
来自http://www.computerhope.com/starthlp.htm:
Windows Vista and later syntax
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /SHARED] [/LOW | /NORMAL | /HIGH | /REALTIME | /ABOVENORMAL | /BELOWNORMAL] [/NODE ] [/AFFINITY ] [/WAIT] [/B] [command/program] [parameters]
这意味着如果start的第一个参数是双引号,那么它就是新DOS框的标题,第二个参数代表要执行的文件。
所以在start
之后再添加一个双引号字符串:
set Variable="This is the title of the DOS box" "C:\...\java" -Xnoclassgc -noverify -XX:NewSize=32m ... -classpath ... <Main_Class> <list of parameters>
start %Variable%