安装:
@echo off
title 安装Windows服务
color 0A
echo ========================================
echo Windows服务安装工具
echo ========================================
echo.
REM 检查管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
echo [错误] 请以管理员身份运行此脚本!
echo 右键点击脚本 -> 以管理员身份运行
pause
exit /b 1
)
REM 设置路径变量
set SERVICE_NAME=服务名称
set SERVICE_EXE=服务名称.exe
set CURRENT_DIR=%~dp0
set SERVICE_PATH=%CURRENT_DIR%%SERVICE_EXE%
REM 检查服务文件是否存在
if not exist "%SERVICE_PATH%" (
echo [错误] 找不到服务文件: %SERVICE_EXE%
echo 请确保脚本与服务文件在同一目录下
pause
exit /b 1
)
echo [信息] 服务文件路径: %SERVICE_PATH%
echo.
REM 停止并删除已存在的同名服务
echo [1/4] 检查并清理旧服务...
sc query "%SERVICE_NAME%" >nul 2>&1
if %errorLevel% equ 0 (
echo [信息] 发现已存在的服务,正在停止并删除...
net stop "%SERVICE_NAME%" >nul 2>&1
sc delete "%SERVICE_NAME%" >nul 2>&1
timeout /t 2 /nobreak >nul
)
REM 安装服务
echo [2/4] 正在安装服务...
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe "%SERVICE_PATH%"
if %errorLevel% neq 0 (
echo [错误] 服务安装失败!
pause
exit /b 1
)
REM 设置服务描述
echo [3/4] 配置服务描述...
sc description "%SERVICE_NAME%" "服务描述"
REM 启动服务
echo [4/4] 正在启动服务...
net start "%SERVICE_NAME%"
if %errorLevel% equ 0 (
echo.
echo ========================================
echo 服务安装成功!
echo ========================================
echo 服务名称: %SERVICE_NAME%
echo 服务状态: 正在运行
) else (
echo [警告] 服务安装成功但启动失败
)
pause
---------------------------------------------安装代码完成------------------------------------------------
卸载
@echo off
title 卸载Windows服务
color 0E
echo ========================================
echo Windows服务卸载工具
echo ========================================
echo.
REM 检查管理员权限
net session >nul 2>&1
if %errorLevel% neq 0 (
echo [错误] 请以管理员身份运行此脚本!
pause
exit /b 1
)
set SERVICE_NAME=服务名称
set SERVICE_EXE=服务名称.exe
set CURRENT_DIR=%~dp0
set SERVICE_PATH=%CURRENT_DIR%%SERVICE_EXE%
echo [信息] 准备卸载服务: %SERVICE_NAME%
echo.
REM 停止服务
echo [1/3] 正在停止服务...
net stop "%SERVICE_NAME%" >nul 2>&1
timeout /t 2 /nobreak >nul
REM 卸载服务
echo [2/3] 正在卸载服务...
%SystemRoot%\Microsoft.NET\Framework\v4.0.30319\InstallUtil.exe /u "%SERVICE_PATH%"
if %errorLevel% neq 0 (
echo [错误] 服务卸载失败!
pause
exit /b 1
)
REM 验证删除
echo [3/3] 验证服务状态...
sc query "%SERVICE_NAME%" >nul 2>&1
if %errorLevel% neq 0 (
echo.
echo ========================================
echo 服务卸载成功!
echo ========================================
) else (
echo [错误] 服务可能未完全卸载
)
pause
-------------------------------------------------------卸载代码完成--------------------------------------
注意事项:
1、代码中的服务名称对应 WindowService系统中的serviceInstaller1组件下的ServiceName中的值。
2、将两个文件都放在服务名称.exe相同的目录下。点右键-在管理员模式下运行。
3、新建文本文件时编码格式选择ANSI之后,再将代码复制到里面。修改后缀为.bat。
4、注意InstallUtil.exe路径的选择,有些系统是Framework,有些系统是Framework64,注意查看本机是哪个目录。