2011-12-28 77 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 
相關問題