首先要感謝zzzEVAzzz,這個批處程序就是根據(jù)他發(fā)布的《Do All in Cmd Shell》文中的資料編寫而成! 原理就是根據(jù)INF文件的功能(關于inf文件的詳細信息,可以參考DDK幫助文檔。)加以自動化編寫而成! 難度很低,偶只用了十來分鐘就編寫出了這個批處程序。(高手看了不要笑哦……)
具體用法:
安裝服務語法為: np 服務名 /a 服務顯示名稱 服務描述 啟動類型 要添加成服務的程序地址 /s 例子: 例如我要安裝一個名為test的服務,其服務的顯示名為:This is test 服務描述為:experimentation 要添加為服務的程序路徑為c:/winnt/system32/test.exe 啟動類型為:自動 并且安裝后立即啟動
首先把test.exe copy到c:/winnt/system32/ 然后執(zhí)行: np test /a "This is test" experimentation 2 c:/winnt/system32/test.exe /s 執(zhí)行后就會自動把test.exe安裝為服務并立即啟動!
卸載服務語法: 例如要卸載的服務名為 test的服務 則: np text /x 回車后即可
注意事項:程序默認為只安裝不立即啟動!除非你在后面加上 /s 參數(shù)才會安裝后立即啟動!
請不要用此程序做非法之用!否則后果全部由使用者負責! 歡迎轉載! 若要轉載,請保持內容完整!謝謝!
附:批處理內容
復制代碼 代碼如下:
_content>@echo off cls color f2 :go if "%1"=="" goto use if "%2"=="" goto use if "%2"=="/a" goto az if "%2"=="/x" goto xz :az if "%5"=="" goto use if "%6"=="" goto use echo [Version] >c:/az.inf echo Signature="$WINDOWS NT$" >>c:/az.inf echo [DefaultInstall.Services] >>c:/az.inf echo AddService=%1,,My_AddService_Name >>c:/az.inf echo [My_AddService_Name] >>c:/az.inf echo DisplayName=%3 >>c:/az.inf echo Description=%4 >>c:/az.inf echo ServiceType=0x10 >>c:/az.inf echo StartType=%5 >>c:/az.inf echo ErrorControl=0 >>c:/az.inf echo ServiceBinary=%6 >>c:/az.inf rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:/az.inf del c:/az.inf if "%7"=="" goto exit if "%7"=="/s" net start %1 goto exit :xz net start|find "%1" >nul&&net stop %1 echo [Version] >c:/xz.inf echo Signature="$WINDOWS NT$" >>c:/xz.inf echo [DefaultInstall.Services] >>c:/xz.inf echo DelService=%1 >>c:/xz.inf rundll32.exe setupapi,InstallHinfSection DefaultInstall 128 c:/xz.inf del c:/xz.inf goto exit :use echo ****************************************************************************** echo ** 安裝服務批處程序 ** echo ** ** echo ** 安裝例子: ** echo ** ** echo ** np 服務名 /a 服務顯示名稱 服務描述 啟動類型 要添加成服務的程序地址 ** echo ** 啟動類型:0 系統(tǒng)引導時加載,1 OS初始化時加載 ** echo ** 2 由SCM(服務控制管理器)自動啟動,3 手動啟動,4 禁用。 ** echo ** ** echo ** 卸載例子: ** echo ** ** echo ** np 服務名 /x ** echo ** ** echo ** build by NetPatch (N/P) QQ:251592982 ** echo ** 2005-4-07 ** echo ****************************************************************************** cmd /k :exit