Board logo

标题: [文本处理] [已解决]批处理如何命令的结果赋值给变量并判断变量的值并处理 [打印本页]

作者: free_ming    时间: 2009-6-26 11:56     标题: [已解决]批处理如何命令的结果赋值给变量并判断变量的值并处理

例如:
把dir c:的的结果赋值给变量A,  判断A中是否有 文件1和文件2,  如果有,  则将文件1拷贝到d:\,  将文件2删除
起因是这样的:
有一个软件 PHDSERVER 运行后,共启了5个服务 RDIServer,legacserver......等,因为未知原因致使RDIServer服务经常莫名其妙的停止,解决办法就是先停一下 (phdctl stop/y),然后,重新启动(phdctl start)问题就解决了. 通过 SC query RDIServer|find "STATE" 可以得到"STATE              : 1  STOPED"的结果,如何判断其中的关键字"1"或是"STOPED",然后执行(phdctl stop/y)和(phdctl start)两条命令问题就可以解决. 请大侠们指点

[ 本帖最后由 free_ming 于 2009-6-29 09:46 编辑 ]
作者: stuqx    时间: 2009-6-26 13:14

  1. (SC query RDIServer|find "STATE" |find "1")&&(phdctl stop/y & phdctl start)
复制代码
这个应该可以满足你的要求
作者: stuqx    时间: 2009-6-26 13:17

  1. (SC query RDIServer|find "STATE" |find "1")&&(net stop RDIServer & net start RDIServer)
复制代码

作者: tario    时间: 2009-6-26 13:56

新手尝试:
把dir c:的的结果赋值给变量A,  判断A中是否有 文件1和文件2,  如果有,  则将文件1拷贝到d:\,  将文件2删除

@echo off
dir C:\ /a-d /b > %tmp%\tmp.txt
find "文件1" %tmp%\tmp.txt 1>nul 2>nul
if errorlevel 1 goto:eof
if errorlevel 0 (
        find "文件2" %tmp%\tmp.txt 1>nul 2>nul
        if errorlevel 1 goto:eof
        if errorlevel 0 (
                copy /z c:\文件1 d:\
                del /q c:\文件2
        )
)
del %tmp%\tmp.txt
作者: keen    时间: 2009-6-26 14:46     标题: 回复 4楼 的帖子

代码超过一行时,请用code将代码括起来。
Q:如何用code将代码括起来?
A:http://www.bathome.net/viewthread.php?tid=404&highlight=code
作者: free_ming    时间: 2009-6-26 15:22

谢谢各位大侠,我测试一下
作者: stuqx    时间: 2009-6-26 16:04

还有   要查找文件的话   这个就可以  
dir /a-d /b c:\name.txt
要包含子目录的话可以这样:
dir /a-d /b /s c:\name.txt
然后后面跟个&&就可以执行找到文件后的命令了
作者: free_ming    时间: 2009-6-26 16:59     标题: 回复 7楼 的帖子

(SC query RDIServer|find "STATE" |find "1")&&(net stop RDIServer & net start RDIServer)命令可行.
每半小时执行一次这个批处理,该如何做呢?
作者: free_ming    时间: 2009-6-26 18:19     标题: 回复 3楼 的帖子

谢谢!问题已圆满解决
作者: Batcher    时间: 2009-6-26 20:32     标题: 回复 8楼 的帖子

创建一个计划任务吧
作者: keen    时间: 2009-6-26 21:26     标题: 回复 9楼 的帖子

问题得到解决后,请主动给标题前面添加【已解决】字样,谢谢。




欢迎光临 批处理之家 (http://bbs.bathome.net/) Powered by Discuz! 7.2