无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站投放广告、加入VIP会员,请联系 微信:wuyouceo
楼主: mdyblog
打印 上一主题 下一主题

[更新376#2825]PECMD2012.1.80.13_Win32_64.多窗口多线程.裸机系统2.3.3.1+18M酷M...

    [复制链接]
19231#
发表于 2024-6-2 11:23:50 | 只看该作者
mdyblog 发表于 2024-6-2 00:16
GF版 , SED可反向替换ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333

这么快,不错,我试一下
回复

使用道具 举报

19232#
发表于 2024-6-2 14:17:42 | 只看该作者
本帖最后由 hhh333 于 2024-6-2 16:56 编辑

还有点不对,如果加负号是反序次数,那-2应该从右往左代替两次,而这个只是倒数第二个替代了
  1. SET$ &NL=0d 0a
  2. SET &v1=111%&NL%222%&NL%333%&NL%444
  3. SED &v2=-2,%&NL%,,%&v1%
  4. MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]
复制代码

执行结果如下:
-------
v1[
111
222
333
444]
  v2[
111
222333
444]

按理解应该是SED &v2=-1:1,%&NL%,,%&v1%的效果

点评

-跳数:反向 1:-n可简写-n ENVI^ EnviMode=1 SET$ &NL=0d 0a SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5 SED &v2=2:-2,%&NL%,,%&v1% MESS. v1[%&NL%%&v1%]%&NL% v2[%&NL%%&v2%] --------  详情 回复 发表于 2024-6-2 18:24
回复

使用道具 举报

19233#
 楼主| 发表于 2024-6-2 18:24:33 | 只看该作者
本帖最后由 mdyblog 于 2024-6-3 10:12 编辑
hhh333 发表于 2024-6-2 14:17
还有点不对,如果加负号是反序次数,那-2应该从右往左代替两次,而这个只是倒数第二个替代了
执行结果如下 ...

PECMD2012.1.88.05.94Stable-240512GG测试.7z=[次数][:位次][标志],正则,替换,原串 替
位次<0:反向 1:-n可简写-n  

ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=2:-2,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]

--------------------
  v1[
1A11
2A22
3A33
4A44
55A5]
  v2[
1A11
2A223A334A44
55A5]

从右往左代替两次:
SET$ &NL=0d 0a
SET &v1=111%&NL%222%&NL%333%&NL%444
SED &v2=2:-2,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]
--------------------
  v1[
111
222
333
444]
  v2[
111222333
444]



///////////反向单元 查询
ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2AA22%&NL%3AAA33%&NL%4AAAA44%&NL%55AAAAAA5
SED -ni *&nm;&nmt;&nml=?2:-2,A+,&A1;&A2,%&v1%
MESS. [%&nm%] [%&nmt%] [%&nml%] A1[%&A1%] A2[%&A2%]
--------------------------------
[15 23] [2] [3 4] A1[AAA] A2[AAAA]

点评

这个输出结果是不是有问题,第一个输出少了 55A5 ,第二个输出少了444  详情 回复 发表于 2024-6-3 09:10
这么定义更加不好理解,我觉得还是把1:1,2:2,3:1看成一个整体比较好,譬如 1111 2222 3333 4444 5555 目前SED 2:2 表示从左到右查找回车换行并跳过两次会得到 1111(跳过) 2222(跳过) 333344445555  详情 回复 发表于 2024-6-3 08:10
回复

使用道具 举报

19234#
发表于 2024-6-3 08:10:14 | 只看该作者
本帖最后由 hhh333 于 2024-6-3 08:48 编辑
mdyblog 发表于 2024-6-2 18:24
PECMD2012.1.88.05.94Stable-240512GG测试.7z
-跳数:反向     1:-n可简写-n   
ENVI^ EnviMode=1

这么定义更加不好理解,我觉得还是把1:1,2:2,3:1看成一个整体比较好,譬如
1111
2222
3333
4444
5555
目前SED 2:2 表示从左到右查找回车换行并跳过两次会得到
1111(跳过)
2222(跳过)
333344445555
这个是正确并且好理解的

SED 2:-2
结果应该是
111122223333(跳过)
4444(跳过)
5555

我觉得应该用SED -2:2更好理解,前面的负号表示反向比较好。即:[查找方向+或-][替代次数[:跳过次数]],查找方向+号可以省略表示从左到右,-号表示从右到左,替代次数默认为1,跳过次数默认为0



点评

也么也没多想。 参照 MSTR 改的 。 含义 次数:-起点 // -1 -2 -3 .... 次数:起点 // 0 1 2 3 .... 则么改都可以, 编程差别不大。 大家觉得  详情 回复 发表于 2024-6-3 09:18
我估计是减号放后面对源码的修改量最小,不然m大怎么会这么做呢  详情 回复 发表于 2024-6-3 09:05
回复

使用道具 举报

19235#
发表于 2024-6-3 09:05:25 | 只看该作者
hhh333 发表于 2024-6-3 08:10
这么定义更加不好理解,我觉得还是把1:1,2:2,3:1看成一个整体比较好,譬如
1111
2222

我估计是减号放后面对源码的修改量最小,不然m大怎么会这么做呢

点评

是的,SED 2:-2,两个2就是为了反向代替两次?与SED 2:2,代替两次跳过两次不同了  详情 回复 发表于 2024-6-3 09:15
回复

使用道具 举报

19236#
发表于 2024-6-3 09:10:37 | 只看该作者
mdyblog 发表于 2024-6-2 18:24
PECMD2012.1.88.05.94Stable-240512GG测试.7z
-跳数:反向     1:-n可简写-n   
ENVI^ EnviMode=1

这个输出结果是不是有问题,第一个输出少了 55A5 ,第二个输出少了444

点评

最后一哆嗦, 优化 出了 差错。 重新上传了。 ENVI^ EnviMode=1 SET$ &NL=0d 0a SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5 SED &v2=2:-2,%&NL%,,%&v1% MESS. v1[%&NL%%&v1%]%&NL% v2[%&NL%%&v2  详情 回复 发表于 2024-6-3 10:30
回复

使用道具 举报

19237#
发表于 2024-6-3 09:15:34 | 只看该作者
527104427 发表于 2024-6-3 09:05
我估计是减号放后面对源码的修改量最小,不然m大怎么会这么做呢

是的,SED 2:-2,两个2就是为了反向代替两次?与SED 2:2,代替两次跳过两次不同了
回复

使用道具 举报

19238#
 楼主| 发表于 2024-6-3 09:18:38 | 只看该作者
本帖最后由 mdyblog 于 2024-6-3 13:02 编辑
hhh333 发表于 2024-6-3 08:10
这么定义更加不好理解,我觉得还是把1:1,2:2,3:1看成一个整体比较好,譬如
1111
2222

也么也没多想。 参照  MSTR 改的 。 含义
次数:-起次   // -1 -2 -3   ....
次数:起次   // 0 1 2 3   ....


则么改都可以, 编程差别不大。
大家觉得怎么合适,改都来得及。




重新上传了。 改了说明, 和MSTR基本保持一致

SED  变量名[;次名]=[次数][:起次][标志],正则,替换,原串
SED -ni 名[;次名][;行名]=?[次][:起次][标志],找正则串,[子名1;子名2],原串
    起次<0:反向  


MSTR 变量名=位置,长度,字符串    //位置<0 则 反向
MSTR[*$] [-xq] [-left] 变量名1,变量名2...,变量名n=<[~]串号1[-]> //串号<0 则 反向


都是  位置<0   反向

回复

使用道具 举报

19239#
 楼主| 发表于 2024-6-3 10:30:46 | 只看该作者
liangnijian 发表于 2024-6-3 09:10
这个输出结果是不是有问题,第一个输出少了 55A5 ,第二个输出少了444

最后一哆嗦, 优化 出了 差错。 重新上传了。


ENVI^ EnviMode=1
SET$ &NL=0d 0a
SET &v1=1A11%&NL%2A22%&NL%3A33%&NL%4A44%&NL%55A5
SED &v2=2:-2,%&NL%,,%&v1%
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]

-----------------------
  v1[
1A11
2A22
3A33
4A44
55A5]
  v2[
1A11
2A223A334A44
55A5]

点评

用起次,也好理解了,妥了  详情 回复 发表于 2024-6-4 18:24
回复

使用道具 举报

19240#
发表于 2024-6-3 15:23:41 | 只看该作者
adsl的-start参数什么意思
adsl的说明是不是不太全

点评

启动 该连接  详情 回复 发表于 2024-6-3 15:56
回复

使用道具 举报

19241#
 楼主| 发表于 2024-6-3 15:56:05 | 只看该作者
泮安宁 发表于 2024-6-3 15:23
adsl的-start参数什么意思
adsl的说明是不是不太全

启动  该连接

点评

测试win8.1需要-start,win11不需要就能连接,不知什么区别 ---------------------------------------------------------------------------------- SED -ni 名[;次名][;行名]=?[次][:起次][标志],找正则串,[  详情 回复 发表于 2024-6-3 16:21
回复

使用道具 举报

19242#
发表于 2024-6-3 16:21:54 | 只看该作者

测试win8.1需要-start,win11不需要就能连接,不知什么区别

----------------------------------------------------------------------------------

SED -ni 名[;次名][;行名]=?[次][:起次][标志],找正则串,[子名1;子名2],原串
这个[标志]怎么用的,可以写个例子吗

点评

正则,替换,原串 对应 这3各部分是否白痴书写的样子,%V%就保持这个样子, 不解释变量; 就给个* _为占位, 为表操作后面的。 ENVI^ EnviMode=1 ForceLocal=1 ENVI bai=% ENVI V=abc SET$ &NL=0d 0a SET &v1  详情 回复 发表于 2024-6-3 19:27
回复

使用道具 举报

19243#
发表于 2024-6-3 16:40:42 | 只看该作者
pe启动界面密码输入框,焦点问题。看是不是pecmd的问题。
默认无法输入,因为焦点不在对话框上,需要点击一下才可以输入
http://bbs.wuyou.net/forum.php?m ... 23&fromuid=1345

点评

ENVI @窗口和控件名.POS=[#]左:上:[@]宽:高:层级:透明度:前置:激活:父窗口ID::客宽:客高 设置一下呗  详情 回复 发表于 2024-6-3 17:53
回复

使用道具 举报

19244#
发表于 2024-6-3 17:53:56 | 只看该作者
freesoft00 发表于 2024-6-3 16:40
pe启动界面密码输入框,焦点问题。看是不是pecmd的问题。
默认无法输入,因为焦点不在对话框上,需要点击 ...

ENVI @窗口和控件名.POS=[#]左:上:[@]宽:高:层级:透明度:前置:激活:父窗口ID::客宽:客高

设置一下呗
回复

使用道具 举报

19245#
 楼主| 发表于 2024-6-3 19:27:07 | 只看该作者
泮安宁 发表于 2024-6-3 16:21
测试win8.1需要-start,win11不需要就能连接,不知什么区别

--------------------------------------- ...

正则,替换,原串
对应 这3各部分是否白痴书写的样子,%V%就保持这个样子, 不解释变量; 就给个*  _为占位,  为表操作后面的。

ENVI^ EnviMode=1 ForceLocal=1
ENVI bai=%
ENVI V=abc
SET$ &NL=0d 0a
SET &v1=123%bai%V%bai%456abc  //123%V%456abc
SED &v2=0*,%V%,,%&v1%  // 替换 "%V%"
SED &v3=0,%V%,,%&v1%   // 替换 "abc"
MESS.   v1[%&NL%%&v1%]%&NL%  v2[%&NL%%&v2%]%&NL%   v3[%&NL%%&v3%]
EXIT
-------------------------------------------------------------------
  v1[
123%V%456abc]
  v2[
123456abc]
   v3[
123%V%456]

点评

用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:1、如何仅返回指定字符串出现在行首或者行尾的行号? 2、当指定字符串在同一行中出现不止一次时,该行的行号仅返回一次。 比如: 1、(下面的  详情 回复 发表于 2024-6-4 16:38
懂了  详情 回复 发表于 2024-6-3 20:38
回复

使用道具 举报

19246#
发表于 2024-6-3 20:38:15 | 只看该作者
mdyblog 发表于 2024-6-3 19:27
正则,替换,原串
对应 这3各部分是否白痴书写的样子,%V%就保持这个样子, 不解释变量; 就给个*  _为占位 ...

懂了
回复

使用道具 举报

19247#
发表于 2024-6-4 13:15:38 | 只看该作者
WRIT 改 UTF-8 的文本会乱码,并且编码会变成ANSI



PECMD:
  1. WRIT 1.TXT,5,加载本地驱动=1
复制代码



1.txt
  1. 加载外置软件=1

  2. 加载外置驱动=0

  3. 加载本地驱动=0
复制代码


点评

WRIT-UTF8指定编码  详情 回复 发表于 2024-6-4 13:33
回复

使用道具 举报

19248#
发表于 2024-6-4 13:33:43 | 只看该作者
liangnijian 发表于 2024-6-4 13:15
WRIT 改 UTF-8 的文本会乱码,并且编码会变成ANSI

WRIT-UTF8指定编码

点评

难怪,但是如果不指定编码就出问题  详情 回复 发表于 2024-6-4 13:37
回复

使用道具 举报

19249#
发表于 2024-6-4 13:37:49 | 只看该作者

难怪,但是如果不指定编码就出问题

点评

那估计是你的文件不带UTF-8文件头BOM  详情 回复 发表于 2024-6-4 14:31
回复

使用道具 举报

19250#
发表于 2024-6-4 14:31:37 | 只看该作者
liangnijian 发表于 2024-6-4 13:37
难怪,但是如果不指定编码就出问题

那估计是你的文件不带UTF-8文件头BOM

点评

解决了,把文本编码改成ANSI就没这些事了  详情 回复 发表于 2024-6-4 15:10
回复

使用道具 举报

19251#
发表于 2024-6-4 15:10:45 | 只看该作者
红毛樱木 发表于 2024-6-4 14:31
那估计是你的文件不带UTF-8文件头BOM

解决了,把文本编码改成ANSI就没这些事了
回复

使用道具 举报

19252#
发表于 2024-6-4 16:38:31 | 只看该作者
mdyblog 发表于 2024-6-3 19:27
正则,替换,原串
对应 这3各部分是否白痴书写的样子,%V%就保持这个样子, 不解释变量; 就给个*  _为占位 ...

用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行首或者行尾的行号?
2、当指定字符串在同一行中出现不止一次时,该行的行号仅返回一次。

比如:
1、(下面的代码未达到要求)要求:仅返回字符串“顺序”开头的行号
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
LPOS*  ,*&LPOS_AllLineNum=顺序,1,%&MSG%
SED* ;;*&SED_AllLineNum=?0,顺序,,%&MSG%
MESS [%&LPOS_AllLineNum%][%&SED_AllLineNum%]
2、(下面的代码未达到要求)要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
LPOS*  ,*&LPOS_AllLineNum=顺序,1,%&MSG%
SED* ;;*&SED_AllLineNum=?0,顺序,,%&MSG%
MESS [%&LPOS_AllLineNum%][%&SED_AllLineNum%]



点评

//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。 ENVI$ &NL=0d 0a ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA \%&NL%窗口使用顺序缩放比例缩放后 //顺序 \%&NL%在高DPI显示顺序环  详情 回复 发表于 2024-6-4 17:57
ENVI$ &NL=0d 0a ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA \%&NL%窗口使用顺序缩放比例缩放后顺序 \%&NL%顺序在高DPI显示顺序环境窗口高度超出顺序预期。 //LPOS* ,*&LPOS_AllLineNum=顺序,1,%&MSG%  详情 回复 发表于 2024-6-4 17:54
1、 弄个换行符到前面呗  详情 回复 发表于 2024-6-4 16:54
回复

使用道具 举报

19253#
发表于 2024-6-4 16:49:59 | 只看该作者
本帖最后由 Anson4 于 2024-6-4 16:54 编辑

在用PECMD处理VHD/VHDX映像文件时,已经实现了这些功能:创建、挂载、卸载、差分。
下面这四个功能如何实现呢:调整扩展或者缩减容量、优化压缩文件体积、将子文件的修改合并到父文件中、重新指定差分文件的父亲
尤其是”重新指定差分文件的父亲“这个功能,目前似乎 bootice 才有,连 Diskpart 都实现不了。
相关的API应该是这个:https://learn.microsoft.com/zh-c ... ddvirtualdiskparent

点评

不是太复杂的API,直接CALL $API 也不是很难  详情 回复 发表于 2024-6-4 16:55
回复

使用道具 举报

19254#
发表于 2024-6-4 16:54:29 | 只看该作者
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

1、
  1. ENVI$ &NL=0d 0a
  2. ENVI &MSG=%&NL%顺序AA获取指定DEF字符串出现的顺序行号AA
  3. \%&NL%窗口使用顺序缩放比例缩放后顺序
  4. \%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
  5. LPOS*  ,*&LPOS_AllLineNum=%&NL%顺序,1,%&MSG%
  6. SED* ;;*&SED_AllLineNum=?0,%&NL%顺序,,%&MSG%
  7. MESS [%&LPOS_AllLineNum%][%&SED_AllLineNum%]
复制代码
弄个换行符到前面呗

点评

谢谢! 基本达到要求,维度不适用于首行。  发表于 2024-10-15 15:42
回复

使用道具 举报

19255#
发表于 2024-6-4 16:55:59 | 只看该作者
Anson4 发表于 2024-6-4 16:49
在用PECMD处理VHD/VHDX映像文件时,已经实现了这些功能:创建、挂载、卸载、差分。
下面这四个功能如何实 ...

不是太复杂的API,直接CALL $API 也不是很难

点评

调用API我是真不懂,请帮个忙写一段!  详情 回复 发表于 2024-6-4 17:11
回复

使用道具 举报

19256#
发表于 2024-6-4 17:11:14 | 只看该作者
红毛樱木 发表于 2024-6-4 16:55
不是太复杂的API,直接CALL $API 也不是很难

调用API我是真不懂,请帮个忙写一段!
回复

使用道具 举报

19257#
 楼主| 发表于 2024-6-4 17:54:57 | 只看该作者
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后顺序
\%&NL%顺序在高DPI显示顺序环境窗口高度超出顺序预期。
//LPOS*  ,*&LPOS_AllLineNum=顺序,1,%&MSG%
SED* ;;*&SED_AllLineNum=?0,%&NL%顺序,,%&NL%%&MSG%
MESS. %&SED_AllLineNum%
EXIT
////////////////
1  3

回复

使用道具 举报

19258#
 楼主| 发表于 2024-6-4 17:57:48 | 只看该作者
Anson4 发表于 2024-6-4 16:38
用 LPOS/RPOS/SED 指令查找指定字符串出现的行号时,遇到了几个问题:
1、如何仅返回指定字符串出现在行 ...

//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA
\%&NL%窗口使用顺序缩放比例缩放后   //顺序
\%&NL%在高DPI显示顺序环境窗口高度超出顺序预期。
SED* ;;*&SED_AllLineNum=?0,顺序[^%&NL%]*顺序,,%&MSG%
MESS [%&SED_AllLineNum%]
EXIT
------------------------
[1 3]

点评

pecmd支持内置一个字体到主程序吗,比如图标字体,某些系统没有图标字体,调用起来就很麻烦要自己转成图片  详情 回复 发表于 2024-6-4 21:17
运行结果符合要求,谢谢!只是前面我的描述似乎有误,正确要求应该是这样:字符串“顺序”在同一行中出现一次或者多次,该行号仅返回一次。  详情 回复 发表于 2024-6-4 18:19
回复

使用道具 举报

19259#
发表于 2024-6-4 18:19:05 | 只看该作者
mdyblog 发表于 2024-6-4 17:57
//2、要求:字符串“顺序”在同一行中出现多次,该行号仅返回一次。
ENVI$ &NL=0d 0a
ENVI &MSG=顺序AA ...

运行结果符合要求,谢谢!只是前面我的描述似乎有误,正确要求应该是这样:字符串“顺序”在同一行中出现一次或者多次,该行号仅返回一次。

点评

//2X、要求:字符串“顺序”在同一行中出现1次或多次,该行号仅返回一次。 ENVI$ &NL=0d 0a ENVI$ &NLa=0a ENVI &MSG=顺序AA获取指定DEF字符串出现的顺序行号AA \%&NL%窗口使用缩放比例缩放后 //顺序 \%&NL%  详情 回复 发表于 2024-6-4 22:21
回复

使用道具 举报

19260#
发表于 2024-6-4 18:24:29 | 只看该作者
mdyblog 发表于 2024-6-3 10:30
最后一哆嗦, 优化 出了 差错。 重新上传了。

用起次,也好理解了,妥了
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-11-23 09:10

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表