本帖最后由 lhc0688 于 2022-5-9 00:27 编辑
最后解决结果:
仔细测试后,发现Edge不能运行是因为PE自身原因,不是下级目录重名exe问题,这样的话,语句就可以简化很多了;
参考826773297、2012胡言乱语两位朋友的代码,稍作修改写为:
FORX /S:6 \360chrome.exe,My360,1,LINK %Desktop%\360浏览器,%My360%
IFEX %desktop%\360浏览器.lnk,!
{
FORX /S:6 \chrome.exe,MyGoogle,1,LINK %Desktop%\Google浏览器,%MyGoogle%
IFEX %desktop%\Google浏览器.lnk,!
{
FORX /S:6 \firefox.exe,Myff,1,LINK %Desktop%\火狐浏览器,%Myff%
IFEX %desktop%\火狐浏览器.lnk,!
{
FORX /S:6 \QQBrowser.exe,MyQQ,1,LINK %Desktop%\QQ浏览器,%MyQQ%
IFEX %desktop%\QQ浏览器.lnk,!
{
FORX /S:6 \chrome.VisualElementsManifest.xml,Mycent,1,
{
FDIR fPath=%Mycent%
LINK %Desktop%\百分百浏览器,%fPath%\chrome.exe
}
IFEX %desktop%\百分百浏览器.lnk,!
{
FORX /S:6 \twinkstar.exe,Mystar,1,LINK %Desktop%\星愿浏览器,%Mystar%
IFEX %desktop%\星愿浏览器.lnk,!
{
FORX /S:6 \msedge.exe,Myedge,1,LINK %Desktop%\Edge浏览器,%Myedge%
}
}
}
}
}
}
实测正常能执行;
问题暂时算解决,感谢826773297、2012胡言乱语 两位坛友!如果高手有更好的写法,欢迎指导。
已知存在的问题:
1、运行速度非常慢;
2、Google浏览器和百分百浏览器执行程序重名,如果百分百在前,则会导致结果出错(快捷图标名字错,但仍可运行);
----------------------------------------------------------------------------------
原求助问题:
PETools.ini 中有这样的命令,目的是想按顺序查找到实机系统里已有的浏览器,并把找到的第一个建立桌面快捷方式:
FORX /S:6 \360chrome.exe,My360,1,LINK %Desktop%\360浏览器,%My360%
FORX /S:6 \msedge.exe,Myedge,1,LINK %Desktop%\Edge浏览器,%Myedge%
FORX /S:6 \chrome.exe,MyGoogle,1,LINK %Desktop%\Google浏览器,%MyGoogle%
现在想写成条件判断语句,如果找到上一个,就不再继续找下面的,查看PECMD帮助里面IFEX语法太复杂实在看不懂,故请教下坛里高手,这个判断语句应该怎样写?还请代码大佬能不吝赐教,先谢!
另外,上面 FORX 查找结果还遇到个小问题,就是找到的执行程序并非浏览器自带的,而是绿化版新增加的,这会导致创建快捷图标后不能正常运行,比如:Edge浏览器,目录结构如下:
Edge\msedge.exe (这个是绿化版另加的)
Edge\98.0.1108.62\msedge.exe (这个是原程序的)
找到第一个后,建立桌面快捷方式,不能正常运行,有没可能再判断下级目录是否有同名exe并选择后者呢?
以上问题一并请赐教,谢谢!
|