无忧启动论坛

标题: 如何使用pecmd指定文件解压到指定目录 [打印本页]

作者: 幻天雨    时间: 2019-12-13 11:37
标题: 如何使用pecmd指定文件解压到指定目录
比如说我在U盘根目录有一个PESOFT.7z,想要用7z解压到x盘根目录,应该如何写pecmd

作者: fjzjk    时间: 2019-12-13 11:56
_SUB MOU1TEXT 正在解压外置程序......
FORX !\mytools\10tools64.wim,MYTOOLS,1,TEAM EXEC =!CMD.EXE /C "7z.exe x "%MYTOOLS%" -y -aos -oX:\10tools64\"|LOAD X:\10tools64\10tools64.ini
WAIT 888

抄来的
作者: ster1357A    时间: 2019-12-13 15:08
fjzjk 发表于 2019-12-13 11:56
_SUB MOU1TEXT 正在解压外置程序......
FORX !\mytools\10tools64.wim,MYTOOLS,1,TEAM EXEC =!CMD.EXE /C  ...

学习中
作者: hilsonma    时间: 2019-12-13 15:43
FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C "d:\7-zip\7z.exe x -aos -y -oX:\ "%My7z%

将 d:\7-zip\7z.exe 换成你实际的7z.exe所在路径。
假如以上pecmd脚本保存为pesoft.ini
如果7z.exe 跟 pesoft.ini 同一分区,可以使用变量如:
FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C %CurDrv%"\7-zip\7z.exe x -aos -y -oX:\ "%My7z%

如果7z.exe 在X:\Program Files\7-zip 可以使用变量如:
FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C %Programs%"\7-zip\7z.exe x -aos -y -oX:\ "%My7z%

作者: fjzjk    时间: 2019-12-13 16:21
hilsonma 发表于 2019-12-13 15:43
FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C "d:\7-zip\7z.exe x -aos -y -oX:\ "%My7z%

将 d:\7-zip\7z ...

请问如果需要解压完成后加载里面的pesoft.ini,就是在语句后面加|LOAD X:\pesoft\pesoft.ini 是吗?
如果不加|,直接换行load,会不会未解压完毕他就执行了?
作者: hilsonma    时间: 2019-12-13 17:22
fjzjk 发表于 2019-12-13 16:21
请问如果需要解压完成后加载里面的pesoft.ini,就是在语句后面加|LOAD X:\pesoft\pesoft.ini 是吗?
如 ...

FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C "d:\7-zip\7z.exe x -aos -y -oX:\ "%My7z%
LOAD X:\pesoft\pesoft.ini

前句的 EXEC =!CMD.EXE 就是表示隐藏执行CMD 并等待执行完成
前导=表示等待完成
前导!表示隐藏执行
作者: fjzjk    时间: 2019-12-13 17:41
hilsonma 发表于 2019-12-13 17:22
FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C "d:\7-zip\7z.exe x -aos -y -oX:\ "%My7z%
LOAD X:\pesoft ...

了解了。没有系统学习过pecmd,这些都是一知半解。我还以为=就是和平时编程一样赋值
作者: 红毛樱木    时间: 2019-12-13 17:54
fjzjk 发表于 2019-12-13 17:41
了解了。没有系统学习过pecmd,这些都是一知半解。我还以为=就是和平时编程一样赋值

EXEC =!CMD.EXE
换成这样子写应该就看得清晰一些
EXEC -wait -hide CMD.EXE

作者: fjzjk    时间: 2019-12-13 18:26
红毛樱木 发表于 2019-12-13 17:54
EXEC =!CMD.EXE
换成这样子写应该就看得清晰一些
EXEC -wait -hide CMD.EXE

是啊,有英文单词就理解了。语法糖对于外行来说就是天书,对熟手来说就很方便了
作者: fjzjk    时间: 2019-12-14 18:15
本帖最后由 fjzjk 于 2019-12-14 18:44 编辑
hilsonma 发表于 2019-12-13 15:43
FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C "d:\7-zip\7z.exe x -aos -y -oX:\ "%My7z%

将 d:\7-zip\7z ...

奇怪,我在pecmd里执行FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C %Programs%"\7-zip\7z.exe x -aos -y -oX:\ "%My7z%
然后他就秒过了,也不执行解压。在cmd里执行pecmd加这句也不行。手动cmd调用7z却可以解压出来,不知道为什么。
(本来是不想用解压的,但是用moun挂载wim的方式,无论是直接挂载到x盘,或者是从别人pe抄的创建一个vhd然后挂载进去,都不行。刚开始点进去看文件夹创建出来了,里面也有东西,过几秒这个文件夹就空空如也了,刚开始我还以为是虚拟磁盘太小了,抄来的配置才创了一个5m的。我改成150m依然不行......)懵逼


作者: hilsonma    时间: 2019-12-14 19:02
fjzjk 发表于 2019-12-14 18:15
奇怪,我在pecmd里执行FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C %Programs%"\7-zip\7z.exe x -aos -y  ...

先试 EXEC CMD.EXE /K
如果不能进入cmd 那就是cmd.exe 的路径问题,需要指明 cmd.exe 的详细路径。
如果可以再试 exec cmd.exe /k %program%"\7-zip\7z.exe"
如果没有7z的提示信息那就是7z 的路径问题。
作者: fjzjk    时间: 2019-12-14 19:28
hilsonma 发表于 2019-12-14 19:02
先试 EXEC CMD.EXE /K
如果不能进入cmd 那就是cmd.exe 的路径问题,需要指明 cmd.exe 的详细路径。
如 ...

感谢。我去试试。
作者: 527104427    时间: 2019-12-14 19:47
fjzjk 发表于 2019-12-14 18:15
奇怪,我在pecmd里执行FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C %Programs%"\7-zip\7z.exe x -aos -y  ...

我是看不下去了,你这引号跟开玩笑似的:FORX !\PESOFT.7z,My7z,1,EXEC  -hide  =“%ProgramFiles%\7-zip\7z.exe” x -aos -y -oX:\ %My7z%

作者: fjzjk    时间: 2019-12-14 20:12
本帖最后由 fjzjk 于 2019-12-14 22:03 编辑
527104427 发表于 2019-12-14 19:47
我是看不下去了,你这引号跟开玩笑似的:FORX !\PESOFT.7z,My7z,1,EXEC  -hide  =“%ProgramFiles%\7-zip ...

这句是直接抄楼上的
-----------------------------

发现问题了,感谢。我按楼上的说法,以及pecmd开头的说明,%Program%这样调用他是找不到,改成%ProgramFiles%就可以了。



作者: fjzjk    时间: 2019-12-14 20:17
本帖最后由 fjzjk 于 2019-12-14 20:19 编辑
hilsonma 发表于 2019-12-14 19:02
先试 EXEC CMD.EXE /K
如果不能进入cmd 那就是cmd.exe 的路径问题,需要指明 cmd.exe 的详细路径。
如 ...

cmd路径是正常的。主要是后面那句,系统找不到指定路径。发现要改成%ProgramFiles%才可以

作者: hilsonma    时间: 2019-12-14 20:59
本帖最后由 hilsonma 于 2019-12-14 21:03 编辑
fjzjk 发表于 2019-12-14 20:17
cmd路径是正常的。主要是后面那句,系统找不到指定路径。发现要改成%ProgramFiles%才可以

嗯,在cmd窗口输入set 就可以看到有哪些环境变量了。Programs 是由pecmd 提供的变量,如果不可用的话就改用环境变量。

作者: fjzjk    时间: 2019-12-14 21:02
本帖最后由 fjzjk 于 2019-12-14 21:53 编辑
hilsonma 发表于 2019-12-14 20:59
嗯,在cmd窗口输入set 就可以看到有哪些环境变量了。

现在解压问题已经搞定了。

作者: 527104427    时间: 2019-12-14 22:41
fjzjk 发表于 2019-12-14 20:17
cmd路径是正常的。主要是后面那句,系统找不到指定路径。发现要改成%ProgramFiles%才可以

拜托,Programs 是啥?那是开始菜单好吧!
作者: fjzjk    时间: 2019-12-15 00:22
527104427 发表于 2019-12-14 22:41
拜托,Programs 是啥?那是开始菜单好吧!

这个确实是我搞错了。pecmd刚开始那段,我把这两个以为是指一个东西了。没去后面翻内置变量
LOAD命令如果用的是实际路径,路径里含空格的话,""引号-定不能省略,因为LOAD可带参数。如
LOAD "X:\Program Files\a.ini" ;而如果是变引用且表面上看起来是连续的,可不加引号,如:
LOAD %Program%\a.ini 。

作者: 幻天雨    时间: 2019-12-15 11:47
hilsonma 发表于 2019-12-13 15:43
FORX !\PESOFT.7z,My7z,1,EXEC =!CMD.EXE /C "d:\7-zip\7z.exe x -aos -y -oX:\ "%My7z%

将 d:\7-zip\7z ...

自己修改了两下,亲测可用,感谢大佬




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