![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 14:11 |
共 48,038 主题排行 / 350,123 发帖 / 今日 1 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 请问这两句批处理可否合为一句? |
| 可打印版本 758 / 6 |
| 第1楼 terse | 发表于 2007-08-13 00:29 |
| 银牌会员 发帖 946 积分 2,404 | |
|
请问这两句批处理可否合为一句? sc query state= all| findstr /r /C:"SERVICE_NAME:">tmpstype.txt
for /f "tokens=2 delims=:" %%i in (tmpstype.txt) do 试着写为: for /f "tokens=2 delims=:" %%i in ('sc query state= all^| findstr /r /C:"SERVICE_NAME:"') do 运行失败! |
|
| 第2楼 ansipeter | 发表于 2007-08-13 09:03 |
| 中级用户 发帖 130 积分 269 | |
|
试试下面的,是可以的
|
|
| 第3楼 terse | 发表于 2007-08-13 09:50 |
| 银牌会员 发帖 946 积分 2,404 | |
|
谢上面 你漏了一‘
[ Last edited by terse on 2007-8-13 at 01:48 PM ] |
|
| 第4楼 terse | 发表于 2007-08-13 13:49 |
| 银牌会员 发帖 946 积分 2,404 | |
|
for /f "tokens=2 delims=:" %%i in ('sc query state^= all^| findstr /r /C:"SERVICE_NAME"') do (
for /f "tokens=4 delims=:_ " %%a in ('sc qc %%i^| findstr "START_TYPE"') do 发现如果%%i含有空格的话 会跳过 怎么回事呢? 加""更不行了! |
|
| 第5楼 不得不爱 | 发表于 2007-08-13 14:47 |
| 超级版主 发帖 2,044 积分 5,310 来自 四川南充 | |
|
应该是
"tokens=4 delims=:_ " 引起的吧,不知道你到底要什么结果 |
|
| 第6楼 terse | 发表于 2007-08-13 16:33 |
| 银牌会员 发帖 946 积分 2,404 | |
Originally posted by 不得不爱 at 2007-8-13 14:47: 我想可能不是这个原因! 用来备份系统当前服务, "tokens=4 delims=:_ " 这个是后面一句的啊 假使前面的%%i 用TXT导出 部分如下: COMSysApp Crypkey License CryptSvc 现在的问题是 sc qc COMSysApp 可以运行 现在的问题是 sc qc CryptSvc 可以运行 现在的问题是 sc qc Crypkey License 这样就不能运行 命令行中运行sc qc "Crypkey License" 这样可以运行 但放在for /f "tokens=4 delims=:_ " %%a in ('sc qc "%%i"^| findstr "START_TYPE"') do 这里%%i加""全部不行 %%i不加""有空格的不行 |
|
| 第7楼 terse | 发表于 2007-08-13 17:40 |
| 银牌会员 发帖 946 积分 2,404 | |
|
终于解决空格问题:
@echo off&color 0B echo 正在备份服务 请稍候.... for /f "delims=" %%i in ('Date /T') do set FILENAME=%%i for /f "tokens=1,2 delims=:" %%i in ('TIME /T') do set FILENAME=%FILENAME%%%i点%%j分 echo 备份当前服务状态到%FILENAME%文件 echo @echo off^&color 0B>"%FILENAME%.bat" echo echo 正在恢复%FILENAME%的服务备份>>"%FILENAME%.bat" for /f "tokens=1,* delims= " %%i in ('sc query state^= all^| findstr /rc:"SERVICE_NAME"') do ( for /f "tokens=4 delims=:_ " %%a in ('sc qc "%%j"^| findstr /rc:"START_TYPE"') do ( echo sc config "%%j" start= %%a^>nul2^>nul >>"%FILENAME%.bat" ) ) echo pause >>"%FILENAME%.bat" for /f "delims=:" %%a in ('findstr /n . "%FILENAME%.bat"') do set /a mn=%%a-3 2>nul echo 备份当前服务 %mn% 项 echo %DATE% %TIME% pause [ Last edited by terse on 2007-8-13 at 09:48 PM ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |