相对而言,还是比较通用的吧,如果哪位仁兄有更好的实现方式,或者发现有不足之处,还请多多指教。
@echo off
echo.--------------------------------------------------
echo.----
技术支持:CC --------
echo.----
今天是%date%
--------
echo.--------------------------------------------------
echo.正在检测服务是否已经创建,请稍后...
sc query NJFKReportAnalyticalService >nul && goto :StartServer || goto :Install
:Install
set /p choice=Windows 该服务尚未安装,是否进行安装?y(是)/n(否)请选择:
if /i "%choice%"=="y" (
sc create NJFKReportAnalyticalService binPath= "%~dp0NJFKReportAnalytical.exe"
echo. ------------服务创建完成。------------
)
goto :StartServer
:StartServer
echo.正在检测服务运行状态,请稍后...
net start|findstr /i /c:"NJFKReportAnalyticalService">null && goto :StopServer
set /p choice=Windows 是否开启NJFKReportAnalyticalService(南京报文解析服务)服务?请选择y(是)/n(否):
if /i "%choice%"=="y" (
echo. 服务启动中...
net start NJFKReportAnalyticalService
echo. ------------服务已启动------------
goto :ConfigServer
)
if /i "%choice%"=="n" goto :no
echo. 输入无效请重新输入.
goto :funish
:StopServer
echo.服务运行中....
set /p choice=Windows 是否停止NJFKReportAnalyticalService(南京报文解析服务)服务?请选择y(是)/n(否):
if /i "%choice%"=="y" (
echo. 服务停止中...
net stop NJFKReportAnalyticalService
echo. ------------服务已停止------------
goto :funish
)
if /i "%choice%"=="n" goto :no
echo. 输入无效请重新输入.
:ConfigServer
set /p choice=Windows 是否开启开机随系统自动运行?请选择y(是)/n(否):
if /i "%choice%"=="y" (
echo.服务自动开启配置中...
sc config NJFKReportAnalyticalService start= AUTO
echo.------------自动开启配置完成------------
goto :funish
)
if /i "%choice%"=="n" goto :no
:funish
echo. 操作已完成&&goto :no
:no
pause
有几个小点要注意,就是
1,判断服务是否已经创建
2,判断windows服务运行状态
3,关于文件路径的获取方式。