无忧启动论坛

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

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

    [复制链接]
11041#
发表于 2015-10-7 23:25:39 | 只看该作者
mdyblog 发表于 2015-10-7 22:45
3:如果是做UD “3”分区启动盘, 中间的那个分区(#2,起始为1024K那个)应该删掉。
UD “3”分区,  ...

老大,是不是分区类型的问题啊?

// 4、剩下中间部分分区创建成NTFS格式分区--2)建分区
    //创建中间分区, 为分区%id%
    IFEX $%SZmid%>0,   TEAM PART %mbr% -up -force -super %hd%#%id% -a 0x0E %Off2% %SZmid%|  CALC id=%id%+1


0x0E改成0x7可以了
回复

使用道具 举报

11042#
 楼主| 发表于 2015-10-7 23:35:28 | 只看该作者
本帖最后由 mdyblog 于 2015-10-7 23:43 编辑
赤木刚宪 发表于 2015-10-7 23:07
我把分区#1与#2交换一下,再交换回来。这个时候DISKGEN里面就显示正常了。
------------------------- ...


我把分区#1与#2交换一下,再交换回来。这个时候DISKGEN里面就显示正常了。

直接吧#2删掉,就可以了。


Mk3PART.zip (1.72 KB, 下载次数: 28)

点评

M大,这样子,还存在一处问题。 我制作好的U盘,进PE不会分配盘符。 本机系统下制作之后会有盘符,但是进PE就没盘符了  详情 回复 发表于 2015-10-8 00:36

评分

参与人数 1无忧币 +5 收起 理由
赤木刚宪 + 5 感谢老大

查看全部评分

回复

使用道具 举报

11043#
发表于 2015-10-8 00:36:22 | 只看该作者
mdyblog 发表于 2015-10-7 23:35
我把分区#1与#2交换一下,再交换回来。这个时候DISKGEN里面就显示正常了。

直接吧#2删掉,就可以了 ...

M大,这样子,还存在一处问题。
我制作好的U盘,进PE不会分配盘符。


本机系统下制作之后会有盘符,但是进PE就没盘符了

点评

没盘符, 那是PE的原因。 换个PE试试。 SHOW * F:0 SHOW * U:0 就会有的。  详情 回复 发表于 2015-10-8 07:26
回复

使用道具 举报

11044#
 楼主| 发表于 2015-10-8 07:26:06 | 只看该作者
赤木刚宪 发表于 2015-10-8 00:36
M大,这样子,还存在一处问题。
我制作好的U盘,进PE不会分配盘符。

没盘符, 那是PE的原因。
换个PE试试。

SHOW  *  F:0
SHOW  *  U:0
就会有的。
回复

使用道具 举报

11045#
发表于 2015-10-9 18:57:46 | 只看该作者
FORX \1\2\win.wim,wim,1,IFEX |%wim%=,SHUT!mess %wim%
我希望判断wim这个变量是否为空,如果为空就重启,否则信息框显示变量。
不知道判断里怎么表达为空...
回复

使用道具 举报

11046#
发表于 2015-10-9 19:32:11 | 只看该作者
小絔小小小 发表于 2015-10-9 18:57
FORX \1\2\win.wim,wim,1,IFEX |%wim%=,SHUT!mess %wim%
我希望判断wim这个变量是否为空,如果为空就重启 ...
  1. FORX \1\2\win.wim,&V,1,ENVI &wim=%&V%
  2. IFEX %&wim%,mess %&wim%!SHUT
复制代码
回复

使用道具 举报

11047#
 楼主| 发表于 2015-10-9 19:52:58 | 只看该作者
本帖最后由 mdyblog 于 2015-10-9 19:54 编辑
小絔小小小 发表于 2015-10-9 18:57
FORX \1\2\win.wim,wim,1,IFEX |%wim%=,SHUT!mess %wim%
我希望判断wim这个变量是否为空,如果为空就重启 ...


  1. SET  &wim=    //初始化为空
  2. FORX \1\2\win.wim,&&V,1,SET wim=%&V%
  3. FIND $%&wim%=,SHUT !mess %&wim%
复制代码


判断为空:
FIND $%&wim%=,

判断不为空:
FIND $%&wim%<>,

回复

使用道具 举报

11048#
发表于 2015-10-9 20:10:52 | 只看该作者
有些U盘可以量产成本地磁盘,有没有办法区别移动硬盘还是这类U盘?
回复

使用道具 举报

11049#
发表于 2015-10-9 20:11:28 | 只看该作者


谢谢大师指点
直接判断文件是否存在这倒又是一种思路!

点评

我不是大师哦。m大才是真大师。很多PECMD的规则是他定的。他按照你的要求解决问题。我只是推测你想达到的目的去解决。  详情 回复 发表于 2015-10-9 20:15
回复

使用道具 举报

11050#
发表于 2015-10-9 20:15:44 | 只看该作者
小絔小小小 发表于 2015-10-9 20:11
谢谢大师指点
直接判断文件是否存在这倒又是一种思路!

我不是大师哦。m大才是真大师。很多PECMD的规则是他定的。他按照你的要求解决问题。我只是推测你想达到的目的去解决。
回复

使用道具 举报

11051#
 楼主| 发表于 2015-10-9 20:24:14 | 只看该作者
阿弥陀佛 发表于 2015-10-9 20:10
有些U盘可以量产成本地磁盘,有没有办法区别移动硬盘还是这类U盘?

按照规范,是区分不了的。
回复

使用道具 举报

11052#
发表于 2015-10-9 20:26:32 | 只看该作者
本帖最后由 小絔小小小 于 2015-10-9 20:30 编辑
阿弥陀佛 发表于 2015-10-9 20:15
我不是大师哦。m大才是真大师。很多PECMD的规则是他定的。他按照你的要求解决问题。我只是推测你想达到的 ...


其实我比较喜欢简单点,所以在从最基础的东西慢慢玩。

看了半天发现是自己之前的命令疏忽了,因为FORX如果没找到文件是不会执行命令的,所以需要分为两段
回复

使用道具 举报

11053#
发表于 2015-10-9 20:57:14 | 只看该作者
新版LOAD命令是不是失效了?习惯EverEdit编辑脚本,发现不能快速运行了。然后直接用PECMD LOAD发现不行了
回复

使用道具 举报

11054#
发表于 2015-10-9 21:32:09 | 只看该作者
阿弥陀佛 发表于 2015-10-9 20:57
新版LOAD命令是不是失效了?习惯EverEdit编辑脚本,发现不能快速运行了。然后直接用PECMD LOAD发现不行了

不好意思。又可以了。可能是以前的代码有些问题。我再找找原因。
回复

使用道具 举报

11055#
 楼主| 发表于 2015-10-9 21:39:56 | 只看该作者
阿弥陀佛 发表于 2015-10-9 20:57
新版LOAD命令是不是失效了?习惯EverEdit编辑脚本,发现不能快速运行了。然后直接用PECMD LOAD发现不行了


可能编辑工具的问题,或者是设置问题。
PECMDEdit EditPlus没问题的。
aa.wcs.zip (184 Bytes, 下载次数: 1)
回复

使用道具 举报

11056#
发表于 2015-10-9 21:41:41 | 只看该作者
阿弥陀佛 发表于 2015-10-9 21:32
不好意思。又可以了。可能是以前的代码有些问题。我再找找原因。

奇怪。发现问题是,如果在UTF-8编码的文本中,不能使用中文的注释,删除中文注释就可以了。其它编码却没问题。这是怎么回事?
回复

使用道具 举报

11057#
 楼主| 发表于 2015-10-9 22:13:15 | 只看该作者
本帖最后由 mdyblog 于 2015-10-9 22:14 编辑
阿弥陀佛 发表于 2015-10-9 21:41
奇怪。发现问题是,如果在UTF-8编码的文本中,不能使用中文的注释,删除中文注释就可以了。其它编码却没 ...

没指定编码, 就这样的不确定。
在开始加
#code=65001

或者 设置编辑器,在文件中保存BOM

UTF8=65001
GBK(简体)=936
TW=950

点评

使用哪一个好? [attachimg]228932[/attachimg]  详情 回复 发表于 2015-10-9 22:57
了解了。使用UTF-8是因为之前的ANSI脚本在繁体系统上乱码,后来就改成UTF-8。  详情 回复 发表于 2015-10-9 22:52
回复

使用道具 举报

11058#
发表于 2015-10-9 22:52:50 | 只看该作者
本帖最后由 阿弥陀佛 于 2015-10-9 22:55 编辑
mdyblog 发表于 2015-10-9 22:13
没指定编码, 就这样的不确定。
在开始加
#code=65001


了解了。
回复

使用道具 举报

11059#
发表于 2015-10-9 22:57:22 | 只看该作者
mdyblog 发表于 2015-10-9 22:13
没指定编码, 就这样的不确定。
在开始加
#code=65001

使用哪一个好?
回复

使用道具 举报

11060#
发表于 2015-10-9 23:02:17 | 只看该作者

搜索了一下。utf-16 le bom在intel平台上效率较高。就这么设置了
回复

使用道具 举报

11061#
 楼主| 发表于 2015-10-9 23:04:10 | 只看该作者
阿弥陀佛 发表于 2015-10-9 23:02
搜索了一下。utf-16 le bom在intel平台上效率较高。就这么设置了

如果带BOM
UTF8   UNICODE 都可以的 。
回复

使用道具 举报

11062#
 楼主| 发表于 2015-10-9 23:20:10 | 只看该作者
PECMD2012.1.88.05.73-1005.7z

支持一键恢复/备份等单一应用模式
PECMD.INI 值设置好屏幕, INIT 之后:
moun -udm onlyapp   //检测并执行一键恢复等单一程序


对其BCD或BOOT.INI 执行:
moun -udm SetOnlyApp F:\BOOT\BCD  GHO 1  ?:\一键恢复.NTR
moun -udm SetOnlyApp F:\efi\microsoft\boot\BCD  GHO 1  ?:\一键恢复.NTR

这样 该PE启动时,就只做一件事, 搜索?:\一键恢复.NTR 并执行。 没找到的话还是如通常一样启动PE。


清除一键恢复绑定:
moun -udm SetOnlyApp F:\BOOT\BCD
moun -udm SetOnlyApp F:\efi\microsoft\boot\BCD

回复

使用道具 举报

11063#
发表于 2015-10-10 06:35:33 | 只看该作者
老大,我想将一个执行结果贮存到一个变量中,并按行读取,是用一个循环用LPOS检查回车换行符,再不断截取还是怎么的?那不是要数组来存贮?

另外我又看到LPOS**[*][#$] [-qu] [-delims:分割符] [-case] 变量名=子字符串,数值,字符串
这个-delims又如何用,没看到示例代码。

点评

另外我又看到LPOS**[*][#$] [-qu] [-delims:分割符] [-case] 变量名=子字符串,数值,字符串 这个-delims又如何用,没看到示例代码。 ------------------------------------------- 比如以#分隔的多串 LPOS** -de  详情 回复 发表于 2015-10-10 08:08
1: 并按行读取 ----------- READ 可以。 EXEC* &&MSG=*cmd /c dir C:\ READ -*,-1,Lines,&MSG //直接获得行数 MESS 行数%Lines% READ -*,5,Line,&MSG //直接读取第5行 MESS 第5行【%Line%】  详情 回复 发表于 2015-10-10 08:01
回复

使用道具 举报

11064#
 楼主| 发表于 2015-10-10 08:01:15 | 只看该作者
hhh333 发表于 2015-10-10 06:35
老大,我想将一个执行结果贮存到一个变量中,并按行读取,是用一个循环用LPOS检查回车换行符,再不断截取还 ...

1: 并按行读取
-----------
READ 可以。
EXEC*  &&MSG=*cmd /c dir C:\
READ -*,-1,Lines,&MSG    //直接获得行数
MESS 行数%Lines%

READ -*,5,Line,&MSG   //直接读取第5行
MESS 第5行【%Line%】
  
回复

使用道具 举报

11065#
 楼主| 发表于 2015-10-10 08:08:14 | 只看该作者
本帖最后由 mdyblog 于 2015-10-10 08:22 编辑

hhh333 发表于 2015-10-10 06:35
老大,我想将一个执行结果贮存到一个变量中,并按行读取,是用一个循环用LPOS检查回车换行符,再不断截取还 ...


另外我又看到LPOS**
  • [#$] [-qu] [-delims:分割符] [-case] 变量名=子字符串,数值,字符串
    这个-delims又如何用,没看到示例代码。
    -------------------------------------------
    比如以#分隔的多串
    1. LPOS** -delims:# V=123,1,aaa#bbb#123#4444
    2. MESS %V%  //3
    复制代码



    1. SET$  NLA=0A  //注意是换行(1个字符), 不是回车换行(2个字符)
    2. LPOS** -delims:\n V=123,1,aaa%&NLA%bbb%&NLA%123%&NLA%4444   //查找换行符间隔的子串
    3. MESS %V%
    复制代码


    1. EXEC* &&MSG1=*cmd /c dir /B c:\
    2. READ  -*,*,&MSG,&MSG1   //换行转换: MS的回车换行  换成 换行
    3. LPOS** -delims:\n V=WINDOWS,1,%MSG%   //查找换行符间隔的子串
    4. MESS %V%
    复制代码


    READ 支持  "换行" 和 “回车换行” 或者他们的混用。 READ *fix 还支持  “回车” 及 其混用 (一些加密的BAT批处理)。
  • 回复

    使用道具 举报

    11066#
    发表于 2015-10-10 09:50:35 | 只看该作者
    本帖最后由 hhh333 于 2015-10-10 10:00 编辑

    我看那个将CMD变脚本的文本,转换后出现REGI  $HKCR\CLSID\{000209FE-0000-0000-C000-000000000046}\\=Microsoft Word Basic
    变成一个\是不是好理解一些:HKCR\CLSID\{000209FE-0000-0000-C000-000000000046}\  表示其下的默认值。

    这个
    reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders" /f /v "%CD%\\BORDERS\\" /t REG_SZ /d ""
    改成脚本怎么写

    点评

    这个 reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders" /f /v "%CD%\\BORDERS\\" /t REG_SZ /d "" 改成脚本怎么写 ----------------------- REGI HKLM\SOFTWARE\Microsoft\Wind  详情 回复 发表于 2015-10-10 10:17
    1: 变成一个\是不是好理解一些:HKCR\CLSID\{000209FE-0000-0000-C000-000000000046}\ 表示其下的默认值。 -------------------- 一般可以这样。 但是有些奇怪的键名含有\,这样就会混淆。如 \DosDevices\C:  详情 回复 发表于 2015-10-10 10:13
    刚才试了一下后面一句用这个可以了: REGI $HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders\\%CurDir%\BORDERS\= 说明两个\\是重要的,第一个\代表是子项下,第二个是引导的是值,如果后面直  详情 回复 发表于 2015-10-10 10:09
    回复

    使用道具 举报

    11067#
    发表于 2015-10-10 10:09:15 | 只看该作者
    hhh333 发表于 2015-10-10 09:50
    我看那个将CMD变脚本的文本,转换后出现REGI  $HKCR\CLSID\{000209FE-0000-0000-C000-000000000046}\\=Micr ...

    刚才试了一下后面一句用这个可以了:
    REGI  $HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders\\%CurDir%\BORDERS\=
    说明两个\\是重要的,第一个\代表是子项下,第二个是引导的是值,如果后面直接接=号代表是默认值。这样就理解了。
    回复

    使用道具 举报

    11068#
     楼主| 发表于 2015-10-10 10:13:07 | 只看该作者
    本帖最后由 mdyblog 于 2015-10-10 10:20 编辑
    hhh333 发表于 2015-10-10 09:50
    我看那个将CMD变脚本的文本,转换后出现REGI  $HKCR\CLSID\{000209FE-0000-0000-C000-000000000046}\\=Micr ...


    1:
    变成一个\是不是好理解一些:HKCR\CLSID\{000209FE-0000-0000-C000-000000000046}\  表示其下的默认值。
    --------------------
    一般可以这样。
    但是有些奇怪的 值名含有\,这样就会混淆。如 \DosDevices\C:
    所以用\\优先表示 路径 和 值名 的分隔。
    HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices\\\DosDevices\C:

    \\ 优先,且是左优先 (默认的\分隔是最右优先)
    解释为
    HKEY_LOCAL_MACHINE\SYSTEM\MountedDevices  的  \DosDevices\C:
    回复

    使用道具 举报

    11069#
     楼主| 发表于 2015-10-10 10:17:58 | 只看该作者
    hhh333 发表于 2015-10-10 09:50
    我看那个将CMD变脚本的文本,转换后出现REGI  $HKCR\CLSID\{000209FE-0000-0000-C000-000000000046}\\=Micr ...

    这个
    reg add "HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders" /f /v "%CD%\\BORDERS\\" /t REG_SZ /d ""
    改成脚本怎么写
    -----------------------

    REGI $HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Installer\Folders\\%_CD%\BORDERS\=
          ----------------------------------------------------------------  -------------- --
    回复

    使用道具 举报

    11070#
    发表于 2015-10-10 13:05:47 | 只看该作者
    本帖最后由 ling3882688 于 2015-10-10 13:13 编辑

    M大,变量和变量叠加怎么处理?
    SET Num=1
    SET A1=111
    SET A2=222
    SET A3=333
    //我想显示A+Num这个变量,比如上面Num=1,那也就是显示A1
    MESS %A%Num%%
    考虑复杂了,MESS %A%Num%%就可以了。

    点评

    MESS %A%Num%% ------------ 这是4.0的用法。 这样有问题。 建议不要这样。 ENVI^ EnviMode=1 或 ENVI^ ForceLocal=1 后,就没有这个效果了。 PECMD2012正规的用法: SET~[/backcolor] Ai=A%Num% 最近的  详情 回复 发表于 2015-10-10 13:38
    回复

    使用道具 举报

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

    本版积分规则

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

    闽公网安备 35020302032614号

    GMT+8, 2024-11-17 14:41

    Powered by Discuz! X3.3

    © 2001-2017 Comsenz Inc.

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