无忧启动论坛

标题: PECMD.exe 的FIND和IFEX用法。 [打印本页]

作者: 2010feifei5612    时间: 2020-10-12 17:12
标题: PECMD.exe 的FIND和IFEX用法。
本帖最后由 2010feifei5612 于 2020-10-13 21:26 编辑

FIND和IFEX不可以套用其它命令吗?
我是要按需创建B盘

我要达到的目的是:
如果内存达到2G及以上,【查找任何盘PETools\PETools.ini文件,匹配到就执行该PETools.ini,否则查找任何盘PETools\*.wim,匹配到就执行%WinDir%\system32\PETools.ini】,否则无操作。


我试了把FORX套进去无效,

有知道怎么写的大神吗?请赐教



作者: 红毛樱木    时间: 2020-10-12 19:31
贴上你的代码
作者: 2012胡言乱语    时间: 2020-10-12 19:51
IFEX MEM > 2048,
{
  ENVI &&PETools=
  FORX \PETools\PETools.ini,&PETools,1,
  {   
    FIND %&PETools%=,
     {
       FORX \PETools\*.wim,MyIni,1,LOAD %WinDir%\system32\PETools.ini
     }!
     {
       LOAD %&PETools%
     }
  }
}

作者: 2010feifei5612    时间: 2020-10-12 22:39
2012胡言乱语 发表于 2020-10-12 19:51
IFEX MEM > 2048,
{
  ENVI &&PETools=

不理解,执行这段代码也没有反应。PETools的变量不是重复了吗?

作者: 2012胡言乱语    时间: 2020-10-12 23:09
本帖最后由 2012胡言乱语 于 2020-10-12 23:18 编辑

上面那个有问题 你用这个试试 应该有用
CALL GHHHHHH
_SUB GHHHHHH
       IFEX MEM > 2048,
       {  
         FORX \PETools\PETools.ini,PETools,1,TEAM LOAD %PETools%|EXIT _SUB
         FORX \PETools\*.wim,PETools,1,LOAD %WinDir%\system32\PETools.ini
        }
_END

//顺方向查找PETools\PETools.ini 有就执行 load 并退出_SUB.
如果没查到PETools\PETools.ini,就运行FORX \PETools\*.wim,PETools,1,LOAD %WinDir%\system32\PETools.ini如果还是没查到PETools\*.wim 就啥都不执行



作者: 2012胡言乱语    时间: 2020-10-12 23:16
2010feifei5612 发表于 2020-10-12 22:39
不理解,执行这段代码也没有反应。PETools的变量不是重复了吗?

没重复 但这个不能达到你的要求
作者: 2010feifei5612    时间: 2020-10-12 23:33
2012胡言乱语 发表于 2020-10-12 23:09
上面那个有问题 你用这个试试 应该有用
CALL GHHHHHH
_SUB GHHHHHH

测试了,也是没有反应。


作者: 2012胡言乱语    时间: 2020-10-12 23:52
本帖最后由 2012胡言乱语 于 2020-10-12 23:54 编辑

代码没问题 没用那是你别的地方有问题再查查 我们也不知道PETools.ini里是啥  想干嘛  挂载wim?

作者: 2010feifei5612    时间: 2020-10-12 23:54
2012胡言乱语 发表于 2020-10-12 23:09
上面那个有问题 你用这个试试 应该有用
CALL GHHHHHH
_SUB GHHHHHH

开始我写的和你这个差不多,就是没有头和尾,第一个没有退出。

IFEX MEM > 2048,
{  
    FORX \PETools\PETools.ini,PETools,1,TEAM LOAD %PETools%
    FORX \PETools\*.wim,PETools,1,LOAD %WinDir%\system32\PETools.ini
}
作者: 2010feifei5612    时间: 2020-10-12 23:57
2012胡言乱语 发表于 2020-10-12 23:52
代码没问题 没用那是你别的地方有问题再查查 我们也不知道PETools.ini里是啥  想干嘛  挂载wim?

外置工具,找PETools.ini,是直接编辑加载;找PETools.wim是创建B盘挂载。
作者: 2012胡言乱语    时间: 2020-10-13 00:01
本帖最后由 2012胡言乱语 于 2020-10-13 00:04 编辑

那%WinDir%\system32\PETools.ini里的怎么知道这边查找的是wim在哪里?查找的变量%PETools% PETools.ini里也不知道啊 PETools.ini 你都提前放到%WinDir%\system32\里 我这里找到了 你PETools.ini也不知道挂载哪里啊
作者: 2010feifei5612    时间: 2020-10-13 00:34
只是找其中一个没有问题,两个却不行了。你有更好的办法吗?

我的思路是:内存大于2G时,找到PETools\PETools.ini就加载PETools\PETools.ini,如果没有就找PETools\*.wim文件,找到就通过%WinDir%\system32\PETools.ini创建B盘并挂载,都没找到就什么都不做,在%WinDir%\system32\PETools.ini的代码:
  1. RAMD ImDisk,P25,NTFS,B:,PETools
  2. EXEC =!CMD.EXE /C "md B:\PETools"
  3. FORX !\PETools\PETools.wim,PETools,1,MOUN %PETools%,B:\PETools
  4. LOAD B:\PETools\PETools.ini
复制代码
wim文件里的ini是建立桌面图标用的


作者: 红毛樱木    时间: 2020-10-13 00:47
  1. ENVI &&AnyINI=
  2. ENVI &&AnyWIM=0
  3. IFEX MEMA>=2048,
  4. {*
  5.     FORX \PETools\PETools.ini,&&AnyINI,1,EXIT FORX
  6.     FIND $%&&AnyINI%=,
  7.     {*
  8.         FORX \PETools\*.wim,&&AnyWIM,1,
  9.         IFEX $%&&AnyWIM%>0,
  10.         {*
  11.             LOAD X:\Windows\System32\PETools.ini
  12.         }
  13.     }!  
  14.     {*
  15.         LOAD %&&AnyINI%
  16.     }
  17. }
复制代码


※命令及参数为空时,变量返回找到的文件目录个数或命令执行的次数
作者: 2010feifei5612    时间: 2020-10-13 09:09
本帖最后由 2010feifei5612 于 2020-10-13 11:07 编辑
红毛樱木 发表于 2020-10-13 00:47
※命令及参数为空时,变量返回找到的文件目录个数或命令执行的次数
我试了只有2G内存时(虚拟机),运行不起来了。
把   IFEX MEMA>=2048,   改为   IFEX MEMA>=2047,   就可以。好像是这个 = 号没有起作用,但把 = 号去掉也不行。
就这样用了。还是非常感谢你。



作者: 2010feifei5612    时间: 2020-10-13 09:27
本帖最后由 2010feifei5612 于 2020-10-13 11:05 编辑

谢谢。
作者: 2012胡言乱语    时间: 2020-10-13 18:34
原来是虚拟机内存不够啊




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