无忧启动论坛

标题: pecmd命令问题 [打印本页]

作者: gzcao    时间: 2009-2-17 16:16
标题: pecmd命令问题
在PECMD中的FIND,IFEX命令语法为:

FIND <条件>,命令1
IFEX <条件>,命令1

这里面在<条件>后有一个逗号“”但如果命令1里面还有逗号的话,好像这个命令就运行不了。

如:IFEX Y:\winpe.ini,LINK !%Desktop%\启用声音支持,%CurDir%\PE_OUTERPART\Start_Sound.CMD,,%CurDir%\PE_OUTERPART\SOUND_PART.ICO

这个命令里有好几个逗号,就运行不了,请问这如何解决?是不是因为逗号造成的?

有哪位高手参否解答一下,谢谢!

[ 本帖最后由 gzcao 于 2009-2-17 16:18 编辑 ]
作者: 270979789    时间: 2009-2-17 22:52
看错了..............
不知道是不是PECMD将!看做第二条命令了。

[ 本帖最后由 270979789 于 2009-2-17 23:01 编辑 ]
作者: lxl1638    时间: 2009-2-18 00:39
原帖由 gzcao 于 2009-2-17 16:16 发表
在PECMD中的FIND,IFEX命令语法为:

FIND ,命令1
IFEX ,命令1

这里面在后有一个逗号“,”但如果命令1里面还有逗号的话,好像这个命令就运行不了。

如:IFEX Y:\winpe.ini,LINK !%Desktop%\启用声音支 ...



_SUB DoHere
    LINK !%Desktop%\启用声音支持,%CurDir%\PE_OUTERPART\Start_Sound.CMD,,%CurDir%\PE_OUTERPART\SOUND_PART.ICO
_END
IFEX Y:\winpe.ini,CALL DoHere

物是死的,但人是活的,除非人也死了。
作者: lxl1638    时间: 2009-2-18 00:43
可以说,上面的方法非常绝妙!
作者: gzcao    时间: 2009-2-18 09:17
原帖由 lxl1638 于 2009-2-18 00:39 发表



_SUB DoHere
    LINK !%Desktop%\启用声音支持,%CurDir%\PE_OUTERPART\Start_Sound.CMD,,%CurDir%\PE_OUTERPART\SOUND_PART.ICO
_END
IFEX Y:\winpe.ini,CALL DoHere

物是死的,但人是活的,除非 ...



多谢老九的回复, 这个方法确实很好,能解决问题.

现在我发现二楼的朋友说的很对,这个语句运行不了,不是逗号的原因,而是!的原因,如二楼所说:"PECMD将!看做第二条命令了",也多谢二楼的朋友.如去掉!,把命令改为:
IFEX Y:\winpe.ini,LINK %Desktop%\启用声音支持,%CurDir%\PE_OUTERPART\Start_Sound.CMD,,%CurDir%\PE_OUTERPART\SOUND_PART.ICO就可以运行了,但达不到我想要的效果,因为它不能最小化运行了.

写子程序的方法固然好,但有没有可能用""或()或其它,把子命令中的,或!隔开,以区别开IFEX本身这个命令.这样一行命令就做好了,也就不用写子程序了.

谢谢
作者: lxl1638    时间: 2009-2-18 12:40
原帖由 gzcao 于 2009-2-18 09:17 发表



多谢老九的回复, 这个方法确实很好,能解决问题.

现在我发现二楼的朋友说的很对,这个语句运行不了,不是逗号的原因,而是!的原因,如二楼所说:"PECMD将!看做第二条命令了",也多谢二楼的朋友.如去掉!,把命 ...


用子过程是最好的方法了,也可以说是万能的办法;
其它方法都不会万能,不管如何,PECMD 一定要用到自己的命令参数分隔符(不可能不支持多参数),比如你说的用"()",当你的批处理或其它EXE命令也带有"()"这样的字符时就出现你遇到的情况,最终解决方案还是要回到用子过程。




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