利用windows批处理文件来启动服务

闲的蛋疼搞的...

创建bat文件:writeline.bat,写入下面的代码(保存编码为GB2312)

:writeline <"str"> <attr>
if "%2"=="" (
	call ColorStr 0c 3 "%1" 1 2 1 ) else (
	call ColorStr %2 3 "%1" 1 2 1
)
goto:eof

创建bat文件:ColorStr.bat,写入下面的代码(保存编码为GB2312)

:ColorStr <attr> <sp> <"str"> <bk> <sp> <enter>
%::::       |     |     |      |    |     |            %
%::::      颜色  空格 字符串  退格 空格 回车换行       %
for %%a in (+%2 +%4 +%5 +%6) do (
   if "%%a"=="+" echo 控制参数不能为空&exit/b
   if %%a lss +0 echo 参数越界-&exit/b
   if %%a geq +a echo 参数越界+&exit/b)
if %3 == "" echo 字符串不能为空&exit/b
pushd %tmp%&setlocal ENABLEEXTENSIONS
:: 将生成的临时文件删除
if exist "%~3?" del/a/q "%~3?">nul 2>nul
if %2 gtr 0 call:ColorStr_bs %2 sp " "&call set/p=%%sp%%<nul
:: 添加退格符
if %4 gtr 0 (call:ColorStr_bs %4 bk "") else set "bk="
call:ColorStr_bs %5 sp " "
set/p=%bk%%sp%<nul>"%~3"&findstr /a:%1 .* "%~3?" 2>nul
if not %6 equ 0 for /l %%a in (1 1 %6)do echo.
endlocal&popd&goto:eof

:ColorStr_bs
set "p="&for /l %%a in (1 1 %1)do call set "p=%%p%%%~3"
set "%2=%p%"&goto:eof

创建bat文件:服务启动器.bat,写入下面的代码,根据注释稍微改一下即可(保存编码为GB2312)

@echo off
:begin
cls

color 3
setlocal EnableDelayedExpansion
SETLOCAL ENABLEEXTENSIONS

:: 三个bat文件的存放文件夹路径,这个记得改!!
cd "C:\software\service"

:: 0 = 黑色 8 = 灰色
:: 1 = 蓝色 9 = 淡蓝色
:: 2 = 绿色 A = 淡绿色
:: 3 = 湖蓝色 B = 淡浅绿色
:: 4 = 红色 C = 淡红色
:: 5 = 紫色 D = 淡紫色
:: 6 = 黄色 E = 淡黄色
:: 7 = 白色 F = 亮白色
:: 例子:call writeline "我是紫色文字" 5 
call writeline "1、PostgreSQL服务" b
call writeline "2、Redis服务" b
call writeline "3、其他服务" b
call writeline "4、退出" b
set /p choice="请根据数字进行选择:"

if "!choice!"=="1" (
    :: 服务名称
    set PGSQL_SERVICE_NAME="postgresql-x64-16"
    for /f "tokens=4" %%i in ('sc query !PGSQL_SERVICE_NAME! ^| findstr "STATE"') do set PGSQL_SERVICE_STATE=%%i
    call writeline "[!PGSQL_SERVICE_NAME!]服务状态:!PGSQL_SERVICE_STATE!" 6
    call writeline "1、启动服务" 6
    call writeline "2、停止服务" 6
    set /p select="请根据数字进行选择(其他则退出):"
    if "!select!"=="1" (
        net start !PGSQL_SERVICE_NAME!
    ) else if "!select!"=="2" (
        net stop !PGSQL_SERVICE_NAME!
    )
) else if "%choice%"=="2" (
    call writeline "选择2" b
) else if "%choice%"=="3" (
    call writeline "选择3" b
) else if "%choice%"=="4" (
    goto end
) else (
    call writeline "无效的选择,请重试" 6
)

ENDLOCAL
pause
goto begin

:end
echo Script has been terminated.
exit /b

把【服务启动器.bat】文件中的路径、服务名称等改好,把这三个文件存放在想放的文件夹中

鼠标右键【服务启动器.bat】,发送快捷方式到桌面

把快捷方式改成管理员运行

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值