差異處

這裏顯示兩個版本的差異處。

連向這個比對檢視

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得知)