2011-12-28 79 views
1

我有一个批处理文件,它执行.sql文件来备份数据库。当我打开电脑时,我把我的批处理文件放入启动文件夹备份数据库。但是当这个批处理文件试图运行时,Oracle服务器没有启动。所以我无法备份数据库。命令提示符:检查Windows服务是否启动

所以我想检查Oracle服务器是否启动或不使用批处理文件。如果Oracle服务器启动,则批处理文件运行命令执行.sql文件备份数据库。否则它应该等到Oracle服务器启动。当Oracle服务器启动时,批处理文件应运行命令执行.sql文件备份数据库。

我该怎么做?

+0

也许有时间升级到PowerShell? – 2011-12-28 04:48:32

回答

2

假设您的Oracle服务是本地的,你可以使用sc start

start /wait sc start <name-of-your-oracle-service> 

如果该服务已启动,该命令将立即返回。否则,它将在返回之前等待服务启动完成。

如果服务名称包含空格,请将该名称用双引号"括起来。

+0

如果服务未启动,如何等待几秒钟? (我使用的是Windows XP) – Bishan 2011-12-28 05:39:58

+1

@Bishan我编辑的答案是使用一种更“现代”的机制来启动/停止XP上的服务,并添加了一个等待命令,以便您不必在其中执行任何其他操作批处理文件。 – dasblinkenlight 2011-12-28 10:26:37

+0

不错,我不知道你能做到这一点! @dasblinkenlight – turmuka 2017-10-16 22:21:32

1

基本上,您可以在运行备份数据库命令之前,检查网络服务是否使用“sc query”命令。或者,您也可以执行以下ping命令来延迟启动进程,

ping -n 5 localhost > NUL 
相关问题