差異處
這裏顯示兩個版本的差異處。
Both sides previous revision 前次修改 下次修改 | 前次修改 | ||
windowsbatch:control_service [2013/09/14 10:51] tony |
windowsbatch:control_service [2023/06/25 09:48] (目前版本) |
||
---|---|---|---|
行 13: | 行 13: | ||
==== Create ==== | ==== Create ==== | ||
腳本接受兩個參數:(1)服務名稱;(2)驅動程式完整路徑。流程就是針對輸入參數做檢查,接著確認是否為已加服務,已加就不做,沒加就做。而透過sc query確認服務是否存在的方法,原先確認服務是否存在是透過%errorlevel%是否為1060,但在XP與2003上抓不到正確的%errorlevel%,因此改透過確認服務名稱字串的方式做判斷。另外有特別處理的部分是Driver的路徑,因為有可能路徑包含空格,而造成User在傳入參數時加上雙引號。為了避免判斷或建立服務時不好處理,在一開始就做了字串取代把雙引號給變成空字串。 | 腳本接受兩個參數:(1)服務名稱;(2)驅動程式完整路徑。流程就是針對輸入參數做檢查,接著確認是否為已加服務,已加就不做,沒加就做。而透過sc query確認服務是否存在的方法,原先確認服務是否存在是透過%errorlevel%是否為1060,但在XP與2003上抓不到正確的%errorlevel%,因此改透過確認服務名稱字串的方式做判斷。另外有特別處理的部分是Driver的路徑,因為有可能路徑包含空格,而造成User在傳入參數時加上雙引號。為了避免判斷或建立服務時不好處理,在一開始就做了字串取代把雙引號給變成空字串。 | ||
- | <code bash> | + | <file bash installDriver.bat> |
@echo off | @echo off | ||
set SERVICE=%1 | set SERVICE=%1 | ||
行 41: | 行 41: | ||
exit /b %errorlevel% | exit /b %errorlevel% | ||
+ | </file> | ||
+ | 使用範例: | ||
+ | <code bash> | ||
+ | installDriver.bat mydriver "D:\Workspace\MyDriver\release\mydriver.sys" | ||
+ | installDriver.bat mydriver D:\Workspace\MyDriver\release\mydriver.sys | ||
+ | installDriver.bat mydriver "D:\Java Workspace\MyDriver\release\mydriver.sys" | ||
</code> | </code> | ||
==== Delete ==== | ==== Delete ==== | ||
- | 腳本接受一個參數:(1)服務名稱。流程就是參數檢查,確認服務是否存在去決定是否執行刪除指令。 | + | 腳本接受一個參數: 服務名稱。流程就是參數檢查,確認服務是否存在去決定是否執行刪除指令。 |
- | <code bash> | + | <file bash uninstallDriver.bat> |
@echo off | @echo off | ||
set SERVICE=%1 | set SERVICE=%1 | ||
行 62: | 行 68: | ||
exit /b %errorlevel% | exit /b %errorlevel% | ||
+ | </file> | ||
+ | 使用範例: | ||
+ | <code bash> | ||
+ | uninstallDriver.bat mydriver | ||
</code> | </code> | ||
- | |||
- | |||
===== Reference ===== | ===== Reference ===== | ||
* [[http://stackoverflow.com/questions/9445223/how-to-check-in-windows-xp-if-the-service-is-not-installed-using-batch-file|在XP如何檢查Service是否存在?]] (因為無法透過sc query %service%的errorlevel得知) | * [[http://stackoverflow.com/questions/9445223/how-to-check-in-windows-xp-if-the-service-is-not-installed-using-batch-file|在XP如何檢查Service是否存在?]] (因為無法透過sc query %service%的errorlevel得知) |