[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[文本处理] 批处理怎样对外部程序的执行结果查找字符串,如果存在该字符并执行程序?

比如说执行DIR C: 这个命令,执行结果是多行字符,我用
  1. for /f "delims=" %%a in ('dir c:') do (
  2. if not exist "Music" do MD Music
  3. PAUSE
复制代码
这个批处理好像并不能实现,请教大神用什么样的办法可以实现? 不要重定向到文件去二次处理!直接用FOR/F 可以实现吗? 或者这种要查找多行字符串的命令一定要用到findstr吗?

dir c:\  /ad /b |findstr /i "music" ||md music
这条代码简单,但是有个问题,比如说换成tree /F c:\tools   | findstr /i "LanPing.cmd"   || md 12
c:\tools目录里有这个文件但并不能建立目录,只会显示出该文件名。这个怎么解决??? 是FINDSTR的参数不够吗?

TOP

经过测试楼上朋友的方法只针对 单行数据有效,如果一行数据里包含其它字符,上面这些命令都无效!~

TOP

比如说:像 pid=1756, owner=WIN7PROSP1\Administrator, cmd=cmd /c ""D:\Soft\nettest.bat" "
这类输出结果中查找指定字符串就无能为力了~,这类结果又有,号又有空格,还有/号 \号 :号。处理起来是不是很麻烦???

TOP

比如说像这个, pid=1756, owner=WIN7PROSP1\Administrator, cmd=cmd /c ""D:\Soft\nettest.bat" "  
我要查找nettest.bat 这个字符串是否存在,比如万一这个程序名字变了就查找不到了。。。
nettest.bat这个字符串不存在就运行另外一条命令~

TOP

本帖最后由 pcl_test 于 2017-1-19 22:22 编辑

回复 11# GNU
可能楼上的大哥没有理解到我的意思,你这个测试是正确的!
但是我比如说echo pid=1756, owner=WIN7PROSP1\Administrator, cmd=cmd /c ""D:\Soft\nettest.bat" " | findstr "nettest.bat" ||md 12
这一句,是不是应该这样理解,当这个字符串在前面的文字里能查找到就建立目录12? 但是,我测试不管能不能查找到都会建立。。所以我说上面这个语句应该是有问题的!

TOP

还是用ERRORLEVEL来判定是比较准确 的~。。。感谢各位大哥。。。

TOP

返回列表