标题: [其他] 批处理命令find和echo的一点小疑问 [打印本页]
作者: 2557787087 时间: 2019-6-20 10:06 标题: 批处理命令find和echo的一点小疑问
主要是有一段批处理程序我已经写好了,但是太复杂了,可以帮我简化一下吗
原代码如下:- @echo off
- SETLOCAL enabledelayedexpansion
- for /f "delims=" %%i in ('sc query "VMnetDHCP"') do (echo %%i |find "STATE" && set j=%%i)
- set /a k=0
- echo !j! |find "RUNNING" && set k=1
- if !k!==1 (
- sc stop "VMnetDHCP"
- )
- pause
复制代码
我想改成
for /f "delims=" %%i in ('sc query "VMnetDHCP"') do (echo (echo %%i |find "STATE" ) |find "RUNNING" && 其他代码)
这样为什么不行呢?
对语句中包含语句的情况不是很了解,希望有人教教我,谢谢!
作者: zaqmlp 时间: 2019-6-20 11:16
- @echo off
- set info=互助互利,支付宝扫码头像,感谢赞助
- rem 有问题,可加QQ956535081及时沟通
- title %info%
- sc query "VMnetDHCP"|find " RUNNING"&&(
- sc stop "VMnetDHCP"
- echo;其他代码
- )
- echo;%info%
- pause
复制代码
作者: Batcher 时间: 2019-6-20 11:29
优化第一步:直接在sc的结果里面find是否包含RUNNING关键字,然后用&&执行sc stop- sc query "VMnetDHCP" | find "RUNNING" && sc stop "VMnetDHCP"
复制代码
优化第二步:反正都是要停止服务,不管三七二十一直接 sc stop 就行啦,不去判断状态复制代码
作者: 2557787087 时间: 2019-6-25 19:35
谢谢楼上二位!是我想复杂了!
欢迎光临 批处理之家 (http://www.bathome.net/) |
Powered by Discuz! 7.2 |