使用`start`在Windows批处理文件中使用双引号启动进程的副作用
Posted
技术标签:
【中文标题】使用`start`在Windows批处理文件中使用双引号启动进程的副作用【英文标题】:Side-effect of using `start` for launching a process in a Windows batchfile using double quotes 【发布时间】:2017-03-13 10:04:48 【问题描述】:我正在使用 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
命令?
【问题讨论】:
【参考方案1】:来自http://www.computerhope.com/starthlp.htm:
Windows Vista 和更高版本的语法
START ["title"] [/D path] [/I] [/MIN] [/MAX] [/SEPARATE | /共享] [/低| /正常 | /高 | /实时 | /高于正常 | /低于一般] [/节点] [/亲和力] [/等待] [/B] [命令/程序] [参数]
这意味着如果 start 的第一个参数在 doubleqotes 中,它将作为新 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%
【讨论】:
感谢您拯救我的一天 :-)以上是关于使用`start`在Windows批处理文件中使用双引号启动进程的副作用的主要内容,如果未能解决你的问题,请参考以下文章
从 RPC 执行时,Windows START 命令无法运行
优雅地终止从带有“start /b”的 Windows 批处理文件启动的 java (jetty/solr) 进程