我需要一个简单的批处理命令,它会等到指定的服务(实际上是 SQL Server)完成启动。看,该bat
文件运行一些非服务可执行文件,它们在启动时尝试连接到 SQL 服务器。他们失败了。
我尝试help
(“/?”键)一些 Windows Shell 命令,但它们似乎没有响应我需要的操作。
我需要一个简单的批处理命令,它会等到指定的服务(实际上是 SQL Server)完成启动。看,该bat
文件运行一些非服务可执行文件,它们在启动时尝试连接到 SQL 服务器。他们失败了。
我尝试help
(“/?”键)一些 Windows Shell 命令,但它们似乎没有响应我需要的操作。
不幸的是,这个命令不存在。sc
可以启动和停止服务,并且可以查询服务的状态(请参阅此答案)。但是即使查询,也只会得到“Service is running”;没有办法知道该服务在其启动中走了多远。
有两种解决方法:
第一种方法会有所帮助,但不能完全解决问题;当服务器处于负载状态时,启动可能需要更长的时间。
对于第二种方法,使用超时的循环(伪代码):
为了更加安全,您可以在其中添加一个sc query
以确保服务没有失败。