为什么批处理脚本比手动执行命令花费的时间更长

为什么批处理脚本比手动执行命令花费的时间更长

我编写了一个批处理脚本来自动启动我的开发环境,但执行时间太长了。事实上,它实际上从未完成过。它在 之后停止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 startcall solr.cmd start,您的批处理文件应该继续。

答案2

发生这种情况的原因是 solr start 正在启动一个程序,而您的脚本现在正在等待该程序完成后才能继续。

为了停止这种情况,你需要使用命令start "title" "program"

因此,在您的示例中,您可能希望替换solr startstart "solr" "solr start"

相关内容