我编写了一个批处理脚本来自动启动我的开发环境,但执行时间太长了。事实上,它实际上从未完成过。它在 之后停止solr start
。我只是假设如果任其发展,它最终会完成。
有什么原因导致它在solr start
?solr start
完全完成后不继续执行,然后显示的只是命令的最后一行输出之后的闪烁下划线。
这是我的批处理脚本:
cd C:\AerospikeVM
vagrant up
cd C:\solr-6.1.0\bin
solr start
cd C:\XAMPP
xampp-control
cd C:\Program Files\Android\Android Studio\bin
studio64.exe
cd C:\Program Files\NetBeans 8.1\bin
netbeans64.exe
cd C:\Program Files\Genymobile\Genymotion
player --vm-name "Samsung Galaxy S6 - 6.0.0 - API 23 - 1440x2560"
cd C:\Program Files\Git
git-bash.exe
cd C:\Users\me\Programs\Program
start notepad Phase2.0_toDoCache.txt
start notepad Phase2.0_toDoList.txt
答案1
如果你只是启动一个批处理文件(或.cmd
命令脚本,基本是同一件事) 在另一个批处理文件中,当内部批处理完成时它不会返回,它只会退出。
为了避免这种行为,您可以使用命令Call
来调用嵌套/内部批处理文件,这将导致它在完成后返回到父批处理文件,并继续执行命令。
从call /?
:
从另一个批处理程序调用一个批处理程序。
CALL [驱动器:][路径]文件名 [批处理参数]
因此,在启动 Solr 后,更改solr start
为call solr.cmd start
,您的批处理文件应该继续。
答案2
发生这种情况的原因是 solr start 正在启动一个程序,而您的脚本现在正在等待该程序完成后才能继续。
为了停止这种情况,你需要使用命令start "title" "program"
因此,在您的示例中,您可能希望替换solr start
为start "solr" "solr start"