楼 主
请问这两句批处理可否合为一句?
发表于 2007-08-13 00:29 · 中国 江苏 常州 溧阳市 电信
银牌会员
★★★
积分 2,404 发帖 946 注册 2005-09-08 13:44 20年会员 UID 42345
状态 离线
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 楼
发表于 2007-08-13 09:03 · 中国 北京 联通
中级用户
★★
替身
积分 269 发帖 130 注册 2007-03-23 21:41 19年会员 UID 82683 性别 女
状态 离线
试试下面的,是可以的
for /f "tokens=2 delims=:" %%i in ('sc query state^= all^|findstr /r /c:"SERVICE_NAME:"') do echo %i
第 3 楼
发表于 2007-08-13 09:50 · 中国 江苏 常州 电信
银牌会员
★★★
积分 2,404 发帖 946 注册 2005-09-08 13:44 20年会员 UID 42345
状态 离线
谢上面 你漏了一‘
[ Last edited by terse on 2007-8-13 at 01:48 PM ]
第 4 楼
发表于 2007-08-13 13:49 · 中国 江苏 常州 电信
银牌会员
★★★
积分 2,404 发帖 946 注册 2005-09-08 13:44 20年会员 UID 42345
状态 离线
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 · 中国 四川 南充 电信
超级版主
★★★★
我爱DOS
积分 5,310 发帖 2,044 注册 2005-09-26 12:00 20年会员 UID 42843 性别 男 来自 四川南充
状态 离线
应该是
"tokens=4 delims=:_ "
引起的吧,不知道你到底要什么结果
第 6 楼
发表于 2007-08-13 16:33 · 中国 江苏 常州 电信
银牌会员
★★★
积分 2,404 发帖 946 注册 2005-09-08 13:44 20年会员 UID 42345
状态 离线
Originally posted by 不得不爱 at 2007-8-13 14:47:
应该是
"tokens=4 delims=:_ "
引起的吧,不知道你到底要什么结果
我想可能不是这个原因!
用来备份系统当前服务,
"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 楼
发表于 2007-08-13 17:40 · 中国 江苏 常州 电信
银牌会员
★★★
积分 2,404 发帖 946 注册 2005-09-08 13:44 20年会员 UID 42345
状态 离线
终于解决空格问题:
@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学习入门 & 精彩文章 (教学室)
DOS疑难解答 & 问题讨论 (解答室)
DOS启动盘 & LOGO技术 (启动盘室)
DOS批处理 & 脚本技术(批处理室)
DOS媒体世界 & 网络技术 (多媒体室)
DOS汉化世界 & 中文系统 (中文化室)
DOS开发编程 & 发展交流 (开发室)
DOS软件下载 & 游戏分享 (下载室)
GRUB4DOS、SYSLINUX及其它启动管理软件讨论专区
其它操作系统综合讨论区
WinPE、PowerShell及其它命令行系统专区
贴图灌水、文学娱乐专区
网络日志(Blog)
论坛回收站
├ 链接失效,待修正