win的service如何在命令行下自动判断start or stop(让程序自动
标题看着挺难的,我解释一下用老机子时ep,平常关闭print服务,打印时再打开,不过每次都窗口操作太繁琐了,所以想做bat
本人不是计算机专业的,只会最简单的命令
sc start spooler
打印之后向关闭服务呢,只好在建立另一个bat
sc stop spooler
换了新机子就不这样疼了,所以以上问题就不管了,可是又有了新问题(太ep的lz
用diskeeper这个磁盘整理软件(不愧是ms自带磁盘整理完整版,功能超全,还带自动整理,新版自动识别ssd)
问题就是每次抽取盒插入硬盘,dk都会开启盘上的自动整理,然后想退出硬盘都提示失败,停止diskeeper这个服务才行,然后手动再开启
所以lz的问题来了,如何写个命令自动判断服务处于start or stop,然后根据返回值自动选择操作
真是扭曲的lz呀 简单,不做磁盘整理
基本上是瞎折腾
非要折腾的话,去看sc query的帮助,其他的自己办吧
这东西在*nix下好折腾,Win32的bat嘛…… 引用第1楼白左于2012-04-30 22:59发表的:
win+r输入cmd /k sc/?
第二个就有:
用法:
sc <server> <option1> <option2>...
....... images/back.gif
是我没写清楚,标题已改正
我是想让程序自动判断状态,然后根据状态采取相应命令 引用第2楼鸡蛋灌饼于2012-04-30 23:01发表的:
简单,不做磁盘整理
基本上是瞎折腾
非要折腾的话,去看sc query的帮助,其他的自己办吧
....... images/back.gif
sc query - 枚举活动服务和驱动程序的状态
sc query eventlog - 显示 eventlog 服务的状态
sc queryex eventlog - 显示 eventlog 服务的扩展状态
sc query type= driver - 仅枚举活动驱动程序
sc query type= service- 仅枚举 Win32 服务
sc query state= all - 枚举所有服务和驱动程序
sc query bufsize= 50 - 枚举缓冲区为 50 字节
sc query ri= 14 - 枚举时恢复索引 = 14
sc queryex group= "" - 枚举不在组内的活动服务
sc query type= interact - 枚举所有不活动服务
sc query type= driver group= NDIS - 枚举所有 NDIS 驱动程序
不懂呀,还是没有解决思路 你绕远了
diskeeper的话
打开diskeeper控制台-菜单栏-操作-配置diskeeper-diskeeper配置属性
属性-新卷检测 取消掉"在所有卷上启用自动碎片整理"这一项前的勾就可以了
当然,以后硬盘分区什么的有改动时,想要自动碎片整理新的卷的话要自己设置 思路短不懂从cmd获取值…
关了开,开了关
@echo off
sc query diskeeper >%temp%\\scstate.txt
find /i "RUNNING" %temp%\\scstate.txt
if %errorlevel% EQU 0 (
sc stop diskeeper
) ELSE (
sc start diskeeper
)
del %temp%\\scstate.txt
exit
回 6楼(tsukiya17) 的帖子
哦哦,ls厉害%errorlevel%这啥意思 错误等级
成功返回0,错误一般为1 6l这个囧。。。
页:
[1]