无忧启动论坛

标题: PECMD如何实现所有分区中查找文件,找到则执行命令1,找不到则执行命令2? [打印本页]

作者: msxjc    时间: 2011-3-28 18:10
标题: PECMD如何实现所有分区中查找文件,找到则执行命令1,找不到则执行命令2?
我想写一个PECMD的配置文件,实现如下功能:创建一个窗体,上面有2个单选框和一个按钮,
运行后,先在所有硬盘分区中查找文件1,如果文件1被找到,则单选框1可用,如果没找到,则单选框1变成灰色不可用状态。
再继续查找文件2,如果文件2被找到,则单选框2变成可用状态,如果文件2找不到,则单选框2变成灰色不可用状态。
如果文件1和文件2都找到,则两个单选框都可用,并把单选框1选中。如果2个文件都找不到,则单选框1、2,全部灰色不可用。
如何实现?


已经解决了。使用IFEX和FIND搭配来实现。

[ 本帖最后由 msxjc 于 2011-3-29 14:16 编辑 ]
作者: junyee    时间: 2011-3-28 21:04
//   PECMD 似乎不支持文件遍历.(好久没长驻论坛了,不知道有没更新?)
//   不过可以通过CMD命令 扩展 PECMD的功能.

//   希望以下命令行能对你有所帮助。



// -------脚本开始------------

_SUB MAIN,W300H200
ITEM BT1,L10T10W80H20,遍历C盘目录,CALL LISTDIR
ITEM BT2,L120T10W40H20,关于,MESS 此脚本示范的是借用外部命令扩充WINCMD的功能\n如想实现更复杂的命令,可以通过WRIT 输出一个完整的BAT文件,\n在BAT中文件写入命令(输出进展信息到某个文件),\n再进而通过READ命令实时读取BAT信息。\n注意,请避免使用WAIT 命令延迟,这样会造成脚本假死。@ All Right Recevied by Lxl1638,Script by Junee @WUYOUBBS #OK
LABE LB1,L10T40W200H48,SCRIPT:Junyee
TIME TM1,0,CALL ReadNext

_END

CALL @MAIN

_SUB LISTDIR
ENVI @TM1=200
EXEC !cmd.exe /c "@echo off &&dir /s /b /ad C:\ >%temp%\file.log"
ENVI line=1
LOOP $%LB1%=%LastLine%,ENVI @TM1=0
_END

_SUB ReadNext
READ %temp%\file.log,%line%,CurLine
READ %temp%\file.log,0,LastLine
CALC #Line=%Line%+1
ENVI @LB1=%CurLine%
_END


_SUB ReadOver
ENVI @LB1=遍历完毕
_END

// -------脚本结束------------
作者: msxjc    时间: 2011-3-29 12:00
我反复测试了PECMD的FIND、IFEX和FORX,三条命令。都不能完美的实现
有哪位高手知道吗?
作者: junyee    时间: 2011-3-29 12:49
很遗憾,看来你并没有从我的回复中得到一点启发?
PECMD 再配合CMD是完全能实现你所述的功能的。
问题是你肯不肯动手。

再经个小小提示吧;
CMD: for +dir + if 基本就能判断出硬盘中是否存在指定的文件。
在CMD执行后,把信息存到文件(甚至注册表)中。都可以通过PECMD的 READ/REGI 命令读取。
作者: ikelca    时间: 2015-2-21 08:59
如果单纯使用pemcd难道不行?
结合cmd就要多出来一个bat 文件




欢迎光临 无忧启动论坛 (http://wuyou.net/) Powered by Discuz! X3.3