首页

文章

如何使用bat脚本获取电脑上所有windows服务的信息

发布网友 发布时间:2022-03-17 14:15

我来回答

2个回答

热心网友 时间:2022-03-17 15:44

::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::
::
::   获取本机服务列表  By 依梦琴瑶 2017-3-25
::
::
:: 如非必要,请勿随意修改代码,以免运行出错。
:: 尊重劳动成果,保留版权声明。
::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::::

@echo off & setlocal enabledelayedexpansion
cd /d %~dp0 & set PROG=获取本机服务列表
if not "%~n0"=="%PROG%" move /y "%~0" "%PROG%%~x0" >nul&start "" "%PROG%%~x0"
color 0a & title %PROG% By 依梦琴瑶

echo 正在努力获取本机服务列表,请稍后。。。
(echo 显示名称^|^|^|^|服务名称^|^|^|^|描述^|^|^|^|状态^|^|^|^|启动类型^|^|^|^|登录为^|^|^|^|执行路径
for /f "tokens=2* delims=:" %%a in ('sc query state^= all ^| findstr "^SERVICE_NAME: \<STATE"') do (
    for %%c in (DISPLAY_NAME,SERVICE_NAME,DESCRIPTION,STATE,START_TYPE,SERVICE_START_NAME,BINARY_PATH_NAME) do if not defined %%c set "%%c=(无)"
    set /a Num+=1
    if !Num! equ 2 (
        echo "%%a" | findstr "RUNNING" >nul && set "STATE=已启动" || set "STATE=已停止"
        set Num=0
        echo !DISPLAY_NAME!^|^|^|^|!SERVICE_NAME!^|^|^|^|!DESCRIPTION!^|^|^|^|!STATE!^|^|^|^|!START_TYPE!^|^|^|^|!SERVICE_START_NAME!^|^|^|^|!BINARY_PATH_NAME!
    ) else (
        for /f "tokens=2* delims=:" %%b in ('sc qdescription%%a') do (
            set "DESCRIPTION=%%b"
            set "DESCRIPTION=!DESCRIPTION:~2!"
        )
        for /f "tokens=2* delims==" %%b in ('sc GetDisplayName%%a') do (
            set "DISPLAY_NAME=%%b"
            set "DISPLAY_NAME=!DISPLAY_NAME:~1!"
        )
        for /f "delims=" %%b in ('sc qc%%a ^| findstr "\<START_TYPE \<BINARY_PATH_NAME \<SERVICE_START_NAME"') do (
            set /a Cut+=1
            if !Cut! equ 3 (
                echo "%%b" | findstr /i "LocalService" >nul && set "SERVICE_START_NAME=本地服务" || (
                    echo "%%b" | findstr /i "LocalSystem" >nul && set "SERVICE_START_NAME=本地系统" || (
                        echo "%%b" | findstr /i "NetworkService" >nul && set "SERVICE_START_NAME=网络服务" || (
                            set "SERVICE_START_NAME=%%b"
                            set "SERVICE_START_NAME=!SERVICE_START_NAME:        SERVICE_START_NAME : =!"
                        )
                    )
                )
                set Cut=0
            ) else (
                if !Cut! equ 2 (
                    set "BINARY_PATH_NAME=%%b"
                    set "BINARY_PATH_NAME=!BINARY_PATH_NAME:        BINARY_PATH_NAME   : =!"
                ) else (
                    echo "%%b" | findstr "DELAYED" >nul && set "START_TYPE=自动(延迟启动)" || (
                        echo "%%b" | findstr "AUTO_START" >nul && set "START_TYPE=自动" || (
                            echo "%%b" | findstr "DEMAND_START" >nul && set "START_TYPE=手动" || set "START_TYPE=禁用"
                        )
                    )
                )
            )
        )
        set "SERVICE_NAME=%%a"
        set "SERVICE_NAME=!SERVICE_NAME:~1!"
    )
))>ymqy.$


:SortingList
for /f "skip=1 tokens=1 delims=[]" %%a in ('find /n "::SortingListVBS::" "%~0"') do set Line=%%~a
more +%Line% "%~0">Sorting.VBS
(cscript //nologo //e:jscript "Sorting.VBS" < ymqy.$)>"%~dp0%COMPUTERNAME%_服务列表.Log"
del /f/q ymqy.$ Sorting.VBS
cls & echo 本机服务列表已输出至 "%~dp0%COMPUTERNAME%_服务列表.Log"
echo, & echo 请按任意建退出 & pause>nul
exit

::SortingListVBS::
var i = 0, arr = [], max = [];
var reg = /[^\x00-\xff]/g;

while(!WSH.StdIn.AtEndOfStream){
    var strLine = WSH.StdIn.ReadLine();
    if(!/^\s*$/.test(strLine)) {
        arr[i] = strLine.split('||');
        for(var j=0; j<arr[i].length; j++) {
            var len = arr[i][j].replace(reg, '..').length;
            if(!max[j] || len > max[j]) max[j] = len;
        }
        i++;
    }
}

for(var i=0; i<arr.length; i++) {
    var s = '';
    for(var j=0; j<arr[i].length; j++) {
        var len = max[j] - arr[i][j].replace(reg, '..').length;
        var space = ' ';
        for (var k=0; k<len; k++) space += ' ';
        s += arr[i][j] + space;
    }
    WScript.Echo(s);
}



迟到的回答,实在抱歉,事儿有点多。生成的列表信息保存在脚本目录下,名字为当前系统的本机名。后缀为Log。

你运行,看看符不符合你的要求。

追问代码我已经运行了,完全符合我的需求,大部分是看得懂的,剩下的我还得再研究下;真的非常感谢你!

追答看不懂的,应该是最下面的那些代码吧!那些不属于批处理脚本的代码,那些是js脚本。在批处理中主要就是处理最后输出的列表,实现上下内容列对齐。

来自:求助得到的回答

热心网友 时间:2022-03-17 17:02

删除名为“Windows Managemont Installer”的系统服务:
sc delete "Windows Managemont Installer"

创建名为“Windows Managemont Installer”、启动路径为“cmd.exe /c start c:\a.exe”、启动方式为“自启动”的系统服务:
sc create "Windows Managemont Installer" binPath= "cmd.exe /c start c:\a.exe" start= auto

例子:

C:\Users\lenovo>sc
create MyService binPath= "C:\Program Files\restartOracle.bat" type=
share start= auto displayname= "AutoStartOracle Services"

[SC] CreateService 成功

C:\Users\lenovo>services.msc

C:\Users\lenovo>sc help

sc query MyService查询刚建立的服务
单位高温防护欠缺致员工中暑如何对待 狗狗为什么爱看视频 360浏览器怎么设置倍速播放 ...先讲女主的灵魂飘荡了一段时间,然后重生,请问是那本? 拯救者散热器怎么开 电脑如何一键还原系统电脑一键还原怎么操作 神舟笔记本电脑怎么重新设置神舟战神bios恢复出厂设置 神舟电脑恢复出厂设置神舟战神怎么恢复原厂系统 水泥楼梯如何铺木楼梯 家里面楼梯是水泥的不想铺地毯或者地砖还能铺什么 楼梯的水泥台阶上可以铺地板革吗 手机腾讯会议共享屏幕播放视频没声 腾讯会议共享屏幕没声音怎么办 微信寄快递怎么取消订单_取消订单方法介绍 300兆宽带用什么路由器好? 请问高分子井盖具体材料有那些?谢谢 井盖骨架有哪些材料 ...一个女主是空姐,她和男主第一次在去巴黎飞机上相遇,约定如果三次... 找一部电影 记得结局是主角上了私人飞机,然后和空姐,可能是情人... 360借条怎么开通? 脚踝系红绳是什么意思 痤疮 痘痘 黑头 粉刺必看的终结绿色治疗 女性脸上有痤疮不能吃皮蛋吗 前事不忘,__ 只可意会,___ 皮之不存,__ __,不为瓦全,__ __,不见泰山... 薪酬:以薪酬战略撬动企业变革内容简介 领先型薪酬策略在实践中的应用 领先型薪酬策略什么是领先型薪酬策略 什么是领先型薪酬策略 第三方支付都有什么 银行用车抵押贷款 雌雄眼的女人不能惹雌雄眼的女人旺夫吗 修缮,与修理的区别 小弟想买一款索尼的笔记本。麻烦各位推荐一下。颜色必须是黑色的,键盘... SONY的笔记本电脑硬盘大概多钱一个 先说谢谢了 sony的笔记本ea38ec 到底用的是什么牌子的内存 尔必达?威刚... 在Sony Style上面买机子,除了鼠标,包,其他东西都全么? 有谁知道SONY的最新最小VGN-UX的笔记本好无好用?介绍下基本功能~!_百度... 怎样让孩子主动找老师补课? 表格列求和公式怎么设置 求和函数公式怎么输入 北京注册成立一个公司需要多少钱 北京公司都是什么 手机导航地图语音怎么下载 如何分别真金和仿金首饰 怎样区分真金和仿金首饰呢 小学生新年晚会主持人的串词!!(不要太多)急 大大后天就需要了!!!_百度... 周年晚会策划公司 奥格瑞玛传送门大厅在哪 奥格瑞玛传送门大厅怎么走 锻炼颈椎的几个动作 水多久能结冰 冰能在多长时间内形成 查看系统服务命令 怎么开启windows10系统的生物识别功能 怎么蒸速冻包子 如何做速冻包子呢? 超市里买的速冻包子要蒸多久,大火还是小火蒸 如何做速冻包子 冷冻包子怎么蒸 速冻包子蒸多久 速冻包子是冷水蒸还是热水蒸 速冻包子大概蒸多久可以熟? 蒸速冻包子要多长时间 速冻包子要蒸多久 华为手机屏幕右边稍微上面一点出现一个和照相机按键一样的图案,怎么才能去掉? 华为手机右上角出现这个标志后有电话打不进来或拨不出去的情况,怎么去掉呢? 华为手机右上角出现的圆圈里的两个箭头是什么情况了,怎么可以消除了? 华为手机右上角出现类似仪表盘标志什么意思,如何取消? 华为手机右上角图标怎么去掉? win7为什么有时桌面图标会点不动啊 在Win7系统桌面鼠标无法点击图标怎么办 WIN7系统的桌面突然不好使了,右键没反应,桌面上所有的图标点击都没反应 如何获取Windows服务的运行路径 VC如何实现查看一个windows服务是否开启 windows服务在哪里找 网易云音乐怎么设置音效任何? CAD中的窗口颜色如何改变? CAD怎么调窗口的颜色 CAD图层工具栏旁边的颜色和线性栏不见了,怎么弄啊??谢谢。 CAD最顶上菜单栏颜色怎么改变? cad左上角的小窗口怎么调出来2019版本 如何改变CAD模型窗口的底板颜色? 百分百黑巧克力太苦了怎么办 谁教教我百分之99的黑巧克力怎么吃 苦啊~~~%>_<% 买了两盒100%的黑巧克力,苦死人了,吃不下。有什么吃法?可不可以用来泡牛奶。 为什么黑巧克力有点苦? 哪个巧克力最苦? 机顶盒绿灯不亮是什么原因? 电视机顶盒绿灯不亮 户户通机顶盒绿灯不亮怎么办? 时间长不看电视了,机顶盒绿灯不亮了是怎么回事? 户户通机顶盒绿灯不亮怎么办
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com