幻天雨 发表于 2019-12-13 11:37:55

如何使用pecmd指定文件解压到指定目录

比如说我在U盘根目录有一个PESOFT.7z,想要用7z解压到x盘根目录,应该如何写pecmd

fjzjk 发表于 2019-12-13 11:56:58

_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: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:30

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:16

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:24

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:54

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 ...

{:1_195:}了解了。没有系统学习过pecmd,这些都是一知半解。我还以为=就是和平时编程一样赋值

红毛樱木 发表于 2019-12-13 17:54:35

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

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

fjzjk 发表于 2019-12-13 18:26:15

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

{:1_186:}是啊,有英文单词就理解了。语法糖对于外行来说就是天书,对熟手来说就很方便了

fjzjk 发表于 2019-12-14 18:15:01

本帖最后由 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依然不行......):dizzy:懵逼

hilsonma 发表于 2019-12-14 19:02:54

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:05

hilsonma 发表于 2019-12-14 19:02
先试 EXEC CMD.EXE /K
如果不能进入cmd 那就是cmd.exe 的路径问题,需要指明 cmd.exe 的详细路径。
如 ...

{:1_195:}感谢。我去试试。

527104427 发表于 2019-12-14 19:47:59

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:38

本帖最后由 fjzjk 于 2019-12-14 22:03 编辑

527104427 发表于 2019-12-14 19:47
我是看不下去了,你这引号跟开玩笑似的:FORX !\PESOFT.7z,My7z,1,EXEC-hide=“%ProgramFiles%\7-zip ...
:shutup:这句是直接抄楼上的
-----------------------------

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


fjzjk 发表于 2019-12-14 20:17:07

本帖最后由 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:43

本帖最后由 hilsonma 于 2019-12-14 21:03 编辑

fjzjk 发表于 2019-12-14 20:17
cmd路径是正常的。主要是后面那句,系统找不到指定路径。发现要改成%ProgramFiles%才可以
嗯,在cmd窗口输入set 就可以看到有哪些环境变量了。Programs 是由pecmd 提供的变量,如果不可用的话就改用环境变量。

fjzjk 发表于 2019-12-14 21:02:52

本帖最后由 fjzjk 于 2019-12-14 21:53 编辑

hilsonma 发表于 2019-12-14 20:59
嗯,在cmd窗口输入set 就可以看到有哪些环境变量了。
{:1_195:}现在解压问题已经搞定了。

527104427 发表于 2019-12-14 22:41:08

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

拜托,Programs 是啥?那是开始菜单好吧!

fjzjk 发表于 2019-12-15 00:22:32

527104427 发表于 2019-12-14 22:41
拜托,Programs 是啥?那是开始菜单好吧!

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

幻天雨 发表于 2019-12-15 11:47:52

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 ...

自己修改了两下,亲测可用,感谢大佬
页: [1]
查看完整版本: 如何使用pecmd指定文件解压到指定目录