記錄:bat腳本批處理操作Windows服務(SC命令---安裝、開啟、配置、關閉 cmd命令行)
[重要通告]如您遇疑難雜癥,本站支持知識付費業務,掃右邊二維碼加博主微信,可節省您寶貴時間哦!
今天不知道腦子哪里搭錯線路了,想搞一個軟件的服務啟動,后來發現畢竟要在桌面右下角顯示,應該需要兩個bat啟動,這樣就沒有啥意義了,那也得把相關的知識點記錄一下,后續想起來繼續搞的話,再來翻閱;
windows服務
一、cmd命令行---進行Windows服務操作
1、安裝服務
sc create 服務名 binPath= "D:\laoliang\laoliangDemo.exe"
注:服務名:指創建的Windows服務名
?????? binPath:指Windows服務程序的路徑
2、配置服務
sc config 服務名 start=AUTO
注:start=AUTO? (自動)
????? start=DEMAND (手動)
????? start=DISABLED? (禁用)
3、開啟服務
net start 服務名
4、關閉服務
net stop 服務名
5、刪除服務
sc delete 服務名
二、第一種:bat批處理---進行Windows服務操作
(新建一個txt文件,把后綴改成.bat文件)
1、創建、配置、開啟服務
@echo.服務啟動...... @echo off @sc create 服務名 binPath= "D:\laoliang\laoliangDemo.exe" @net start 服務名 @sc config 服務名 start= AUTO @echo off @echo.啟動完畢! @pause
2、關閉服務
@echo.服務關閉 @echo off @net stop 服務名 @echo off @echo.關閉結束! @pause
3、刪除服務(刪除前要關閉服務)
@echo.服務刪除 @echo off @sc delete 服務名 @echo off @echo.刪除結束! @pause
二、第二種:bat批處理---進行Windows服務操作
1、安裝腳本Install.bat
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\laoliangDemo.exe "D:\laoliang\laoliangDemo.exe" Net Start 服務名
sc config 服務名 start= auto pause
注:第一行:Window服務執行程序的路徑
???? 第二行:啟動服務
???? 第三行:設置服務自動運行
???? 最后一行:暫停,可以查看運行信息
2、卸載腳本Uninstall.bat
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\laoliangDemo.exe /u "D:\laoliang\laoliangDemo.exe" pause
延伸閱讀:
一般來說,批處理文件處理相對路徑的時候,起始位置是bat文件所在的目錄,比如在D:\XX目錄下執行bat文件,所有相對目錄的操作都會以D:\XX下執行。
但是有些命令需要管理員權限,右鍵選擇以管理員身份運行時后,起始位置則為C:\Windows\system32,這時候往往不是我們所想要的,
一種解決解決辦法是在批處理的行首加一句"cd D:\XX”進入該目錄,以修改其當前位置,但這樣需要在批處理文件中加入絕對路徑,如果把bat文件移動到其它位置就無法使用了,此時一種更好的方式是用"cd /d %~dp0”代替"cd D:\XX”。
綜上所述,在寫bat文件的時候,不管是否需要用到管理員權限,最好在行首加一句"cd /d %~dp0",以統一文件的起始目錄。
例如,Auto.bat處于文件夾d:\laoliang\下,以下為Auto.bat的內容
cd /d %~dp0
start laoliangDemo.exe
代表啟動“D:\laoliang\laoliangDemo.exe”這個程序
安裝的bat文件
@echo on color 2f mode con: cols=80 lines=25 @echo 請按任意鍵開始安裝后臺服務... pause cd /d %~dp0 Learn_Topshelf.exe install net start Stuff pause
卸載的bat文件
@echo on color 2f mode con: cols=80 lines=25 @echo 請按任意鍵開始卸載后臺服務... pause cd /d %~dp0 Learn_Topshelf.exe uninstall pause
更延伸的閱讀:
net stop "服務名稱" ? 停止服務 net pause "服務名稱" ?暫停服務 net start "服務名稱" ?啟動服務 ----------分割線-------------- sc config "服務名稱" start= auto(自動) sc config "服務名稱" start= demand(手動) sc config "服務名稱" start= disabled(禁用) sc config "服務名稱" start= delayed-auto(自動(延遲啟動))
問題未解決?付費解決問題加Q或微信 2589053300 (即Q號又微信號)右上方掃一掃可加博主微信
所寫所說,是心之所感,思之所悟,行之所得;文當無敷衍,落筆求簡潔。 以所舍,求所獲;有所依,方所成!