![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-24 14:07 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助]如何用批处理来开关服务 |
| 可打印版本 2,422 / 22 |
| 第1楼 rcbblgy | 发表于 2007-01-23 07:41 |
| 初级用户 发帖 14 积分 31 | |
|
[求助]如何用批处理来开关服务 我知道用sc start/stop 服务名 来开关服务,但是我现在想先判断服务是打开的还是关闭的,要是打开的就关闭服务,要是服务是关闭状态就打开服务,这个怎么来实现?是不是用到query这个参数啊,我刚学批处理,高手们指点一下。
|
|
| 第2楼 lxmxn | 发表于 2007-01-23 07:52 |
| 版主 发帖 4,938 积分 11,386 | |
|
提示一下:先根据SC QUERY <SERVICENAME>的STATE值来判断,再SC CONFIG <SERVICENAME>配置服务,再来SC START/STOP启动停止服务。 |
|
| 第3楼 rcbblgy | 发表于 2007-01-23 07:55 |
| 初级用户 发帖 14 积分 31 | |
|
@echo off
sc query vmauthdservice >query.txt find "state" query.txt |find "4" if not errorlevel 4 (sc start vmauthdservice) else(sc stop vmauthdservice) 上面的写法只能开不能关,错在哪里? |
|
| 第4楼 rcbblgy | 发表于 2007-01-23 07:59 |
| 初级用户 发帖 14 积分 31 | |
|
我就是不知道怎么用这个值来判断啊
|
|
| 第5楼 wiky | 发表于 2007-01-23 08:09 |
| 新手上路 发帖 1 积分 0 | |
|
怎么做才对?我也想知道 。
|
|
| 第6楼 lxmxn | 发表于 2007-01-23 08:22 |
| 版主 发帖 4,938 积分 11,386 | |
|
我的系统里面没有你说的 vmauthdservice 服务,这里我以telnet服务为例子吧:
|
|
| 第7楼 hangyug | 发表于 2007-01-23 09:53 |
| 初级用户 发帖 43 积分 99 | |
|
请问lxmxn,那些"半个"括号是什么意思?还有一个括号占了一行,又是什么意思?可否讲解一下?括号是不是有特殊的用法?
[ Last edited by hangyug on 2007-1-22 at 08:54 PM ] |
|
| 第8楼 lxmxn | 发表于 2007-01-23 11:59 |
| 版主 发帖 4,938 积分 11,386 | |
|
这样发给你看,应该明白了吧?
|
|
| 第9楼 rcbblgy | 发表于 2007-01-23 23:50 |
| 初级用户 发帖 14 积分 31 | |
|
非常感谢,这个服务是虚拟机的服务。我平时把它设成手动,用虚拟机的时候再开服务,所以服务启动类型就不设了,全当知识学了吧,呵呵。
不过还有一些地方不太明白啊,比如"delims=" 、%%i、^,我以前只看过一些简单的批处理教程,只介绍了常用的命令,哪里有比较全面的讲解教程,我想学学。 |
|
| 第10楼 ec2049 | 发表于 2007-01-24 00:16 |
| 初级用户 发帖 25 积分 57 | |
|
lxmxn那个bat的作用:
如果服务已启动就让它停止; 如果服务已停止就让它启动; 是这样吗? |
|
| 第11楼 lxmxn | 发表于 2007-01-24 01:01 |
| 版主 发帖 4,938 积分 11,386 | |
|
Re rcbblgy: 到论坛的教学室去看看吧,里面很多教程的,搜索一下就有的。 Re ec2049: 是这样的。运行批处理就可以改变服务的开启状态了。 |
|
| 第12楼 jasonwang | 发表于 2007-01-24 01:17 |
| 初级用户 发帖 54 积分 122 | |
|
2000下没有SC这个命令啊?
|
|
| 第13楼 lxmxn | 发表于 2007-01-24 01:21 |
| 版主 发帖 4,938 积分 11,386 | |
|
那就没有办法了,可以搜索一下论坛里面关于配置系统服务的三方命令行工具,我记得有一个原创帖的。 |
|
| 第14楼 jasonwang | 发表于 2007-01-24 03:22 |
| 初级用户 发帖 54 积分 122 | |
|
@echo off
for /f "delims=" %%i in ('SC QUERY TLNTSVR^|FIND "STATE"') do ( 这句看懂了,根据state来做DO后面的工作) echo %%i|find /i "RUNNING" && ( 如果是"running"状态, &&是什么呢? sc stop tlntsvr SC命令停止TELNET服务 sc config tlntsvr start= disabled)||( SC永久配置TELNET为不启用 但||是什么意思呢? sc config tlntsvr start= auto SC启动TELNET为自动,启动TELNET sc start tlntsvr) ) exit/b |
|
| 第15楼 zerocq | 发表于 2007-01-24 05:50 |
| 中级用户 发帖 196 积分 458 | |
Originally posted by rcbblgy at 2007-1-23 23:50: 楼主和我一样,呵呵 我喜欢在用vmware才开启那些nat,dhcp服务,所以写了一个脚本检测来开关服务 如果你也是vmware的话很简单,因为这些服务在开启后会在产生进程 像vmnat.exe,只要tasklist|find确认就好了 net start|find也可以啊:D |
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |