无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 22300|回复: 58
打印 上一主题 下一主题

PECMD.EXE SHOW 命令详解。

[复制链接]
跳转到指定楼层
1#
发表于 2010-5-30 21:33:01 | 只看该作者 回帖奖励 |正序浏览 |阅读模式
.
      近期从论坛上下载了几个 WinPE 来学习,也无意搜索到一些网页关于 PECMD SHOW
命令的使用方法。发现不少人对 PECMD SHOW 命令了解不够或有误解(多数不带参数),
所以有必要将 SHOW 命令的说明更新一下,同时也细化了 PECMD SHOW 命令的功能。

      PECMD SHOW 命令设计的本意是加载没有被资源管理器自动分配盘符的硬盘分区,
在设计当初本人就有一条原则----不主动加载隐藏分区,因为用户隐藏一个分区必然有自己
的目的,主动加载隐藏分区不符合系统维护和保护数据的目的,所以省略参数的 SHOW
命令是无法加载隐藏分区的,要加载隐藏分区必须设置合理的参数。

     以下是最新版 PECMD SHOW 命令的说明:



┣━━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫
┃      │格式│SHOW [磁盘分区],[盘符字母],[等待时间]                                                       ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │功能│显示系统存在的移动硬盘、固定硬盘的隐藏分区或沒有加载的分区,并给这些分区分配盘符。          ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │参数│■磁盘分区: 由 [硬盘号或标识符:分区号] 组成,"硬盘号"与"标识符"只取其一。                   ┃
┃      │    │            ◆硬盘号: 用数值表示,小于"0"表示所有的硬盘、U盘和移动硬盘,"0"表示"hd0","1"表示┃
┃      │    │                      "hd1","2"表示"hd2","3"表示"hd3",依次类推;                         ┃
┃      │    │            ◆标识符: 用"F"或"U"表示,"F"表示固定硬盘,"U"表示U盘或USB移动硬盘;            ┃
┃      │    │            ◆分区号: 用数值表示,小于"0"表示全部还没有盘符的分区,"0"表示全部还没有盘符的可┃
┃      │    │                      见分区,"1"表示第1分区,"2"表示第2分区,"3"表示第3分区,依次类推;    ┃
┃'SHOW'│    │■盘符字母: 用字母"C~Z"表示,省略"盘符字母"或设置盘符不合理时由 PECMD.EXE 自动分配盘符。   ┃
┃      │    │■等待时间: 数字,表示为设备就绪等待若干时间(毫秒)后才执行分配盘符的功能。                  ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │示例│SHOW 0:1,H 或 SHOW U:1,U 或 SHOW F:0 或 SHOW U:0,,3000 或 SHOW U:-1 或 SHOW                 ┃
┃      ├──┼──────────────────────────────────────────────┨
┃      │备注│※某些机型在WinPE启动后已经可以识别移动硬盘,但没有为移动硬盘指派盘符,可以通过 SHOW 命令的 ┃
┃      │    │  "U"标识符为移动硬盘分配盘符,示例2表示给"移动硬盘的第1分区"指派为盘符"U:";               ┃
┃      │    │※示例1表示"硬盘0分区1"指派为盘符"H:",示例3表示自动为"固定硬盘的所有可见分区"指派盘符;    ┃
┃      │    │※通常"等待时间"可以省略,"等待时间"是驻留内存的PECMD在检测到移动硬盘插入时内部使用的变量; ┃
┃      │    │※省略所有参数的SHOW命令不会主动载入隐藏分区,要载入隐藏分区,"分区号"必须设置为数值"-1";  ┃
┃      │    │※删除盘符可用SUBJ命令,该命令与SUBJ命令配合,可载入隐藏分区的外置程序并保持原分区隐藏属性。┃
┣━━━┿━━┿━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━┫


      PECMD 将硬盘介质分为两种类型,即传统的固定硬盘和USB介质硬盘(含U盘)。要操作那种类型磁盘可由参数中的标识符硬盘号
决定,如要操作硬盘则应使用标识符 F,操作USB移动硬盘或U盘则应使用标识符 U;也可使用数字来操作指定ID的硬盘(见说明)。
      PECMD 将无盘符的分区类型分为两类,即可见分区和隐藏分区。要操作那种类型分区可由参数分区号来决定,"0"表示没有分配符盘
的可见分区(分区表中的属性是可见分区,但资源管理器还没有指派盘符),小于"0"表示全部没有分配盘符的分区(含可见分区和隐藏分)。
所以要加载隐藏分区,关键是要设置好分区号,现举几个例子来说明。

加载无盘符的可见分区:
加载第2硬盘无盘符的分区:   SHOW 1:0
加载第2硬盘的第4分区:   SHOW 1:4
加载所有固定硬盘无盘符的分区:  SHOW F:0
加载USB磁盘无盘符的分区: SHOW U:0
加载所有磁盘(含USB设备)无盘符的分区: SHOW -1:0

加载无盘符的磁盘分区(含可见分区和隐藏分区):
加载第2硬盘的隐藏分区:   SHOW 1:-1
加载所有硬盘的隐藏分区:  SHOW F:-1
加载USB磁盘的隐藏分区: SHOW U:-1
加载所有磁盘(含USB设备)的隐藏分区: SHOW -1:-1

[ 本帖最后由 lxl1638 于 2010-5-31 11:55 编辑 ]
推荐
 楼主| 发表于 2010-5-30 23:16:00 | 只看该作者
原帖由 zxw 于 2010-5-30 22:54 发表
比如说,pesudo的0PE采用多级扩展结构,一级内核需要首先用cmd.exe来引导,然后才加载二级内核启动PE.似乎新版pecmd好象限制了第一控制权。只能由它启动cmd.exe,不能由cmd.exe启动它。
忽又想起0PE的结构特点 ...


这样啊?你先试试能不能将PECMD放入一级内核作为第一个程来使用,当然在二级内核没有加载之前,PECMD.INI要尽可能使用更少的命令,或者只执行 EXEC 命令启动加载二级内核的 CMD。
PECMD只有执行到相应的命令才加载那些不常用的DLL的,并没有使用很多DLL的说法,
新版PECMD和旧版的PECMD一样可以在只有10多M的骨头版PE使用,你说会使用到很多DLL么。
回复

使用道具 举报

59#
发表于 2023-5-18 21:37:13 | 只看该作者
Pecmd.exe窗口输入:SHOW =1 *   执行——————就可以看到移动硬盘的隐藏分区
********************************************************************
怎样恢复隐藏分区为看不见?谢谢(重新启动PE除外)
回复

使用道具 举报

58#
发表于 2020-4-10 07:21:16 | 只看该作者
maanu 发表于 2010-5-31 05:04
llxl1638

i wanted to ask you again , is it too hard to port PECMD to use english based PE's . or  ...

Well, I don't think the problem is connected with language. I use PECMD SHOW cmd and it works well with my program. Sorry that I don't know other command of PECMD.
回复

使用道具 举报

57#
发表于 2019-9-21 17:26:09 | 只看该作者
如何指定当前文件夹所在的盘符?
回复

使用道具 举报

56#
发表于 2011-6-1 13:43:27 | 只看该作者
学习了一下,真是认真负责
回复

使用道具 举报

55#
发表于 2011-6-1 10:32:52 | 只看该作者

不错,

学习了,的研究研究。
回复

使用道具 举报

54#
发表于 2010-7-1 11:03:45 | 只看该作者
哪里有pecmd的使用教程啊
回复

使用道具 举报

53#
 楼主| 发表于 2010-6-8 21:56:59 | 只看该作者
原帖由 yidawpf 于 2010-6-8 20:19 发表
91039

试了许多次,还是有问题。
附命令,大家帮我看看:
@echo off
cd /d "%~dp0"
showdrive.exe
SET V0=HKLM\System\CurrentControlSet\Services
SET V1=System32\Drivers
REG ADD %V0%\USBHUB /v  ...

这个已经与 WinPEShl.EXE 无关了,CMD.EXE 已经启动,下来的事就是批处理 CMD 的问题了.
你先用 WinPEShl.INI 启动不加任何参数的 CMD.EXE,在 CMD.EXE 窗口中一条一条命令来试验.
回复

使用道具 举报

52#
发表于 2010-6-8 20:19:02 | 只看该作者


试了许多次,还是有问题。
附命令,大家帮我看看:
  1. @echo off
  2. cd /d "%~dp0"
  3. showdrive.exe
  4. SET V0=HKLM\System\CurrentControlSet\Services
  5. SET V1=System32\Drivers
  6. REG ADD %V0%\USBHUB /v ImagePath /t REG_EXPAND_SZ /d "%V1%\USBHUB.SYS" /F >NUL
  7. REG ADD %V0%\USBCCGP /v ImagePath /t REG_EXPAND_SZ /d "%V1%\USBCCGP.SYS" /F >NUL
  8. REG ADD %V0%\USBEHCI /v ImagePath /t REG_EXPAND_SZ /d "%V1%\USBEHCI.SYS" /F >NUL
  9. REG ADD %V0%\USBOHCI /v ImagePath /t REG_EXPAND_SZ /d "%V1%\USBOHCI.SYS" /F >NUL
  10. REG ADD %V0%\USBSTOR /v ImagePath /t REG_EXPAND_SZ /d "%V1%\USBSTOR.SYS" /F >NUL
  11. REG ADD %V0%\USBUHCI /v ImagePath /t REG_EXPAND_SZ /d "%V1%\USBUHCI.SYS" /F >NUL
  12. REG ADD %V0%\HIDUSB /v ImagePath /t REG_EXPAND_SZ /d "%V1%\HIDUSB.SYS" /F >NUL
  13. REG ADD %V0%\MOUCLASS /v ImagePath /t REG_EXPAND_SZ /d "%V1%\MOUCLASS.SYS" /F >NUL
  14. REG ADD %V0%\MOUHID /v ImagePath /t REG_EXPAND_SZ /d "%V1%\MOUHID.SYS" /F >NUL
  15. REG ADD %V0%\KBDCLASS /v ImagePath /t REG_EXPAND_SZ /d "%V1%\KBDCLASS.SYS" /F >NUL
  16. REG ADD %V0%\KBDHID /v ImagePath /t REG_EXPAND_SZ /d "%V1%\KBDHID.SYS" /F >NUL
  17. REG ADD %V0%\CDROM /v ImagePath /t REG_EXPAND_SZ /d "%V1%\CDROM.SYS" /F >NUL
  18. SET V0=
  19. SET V1=
  20. for %%i in (C: D: E: X: C: F: G: H: I: J: K: L: M: N: O: P: Q: R: S: T: U: V: W: Y: Z:) DO (
  21. if exist %%i\type\Type.iso (SET OPDrv=%%i&SET OPExt=iso&goto :mount_iso) else (
  22.   if exist %%i\type\Type.isz (SET OPDrv=%%i&SET OPExt=isz&goto :mount_iso)
  23. )
  24. )
  25. GOTO :ERROR
  26. :mount_iso
  27. isocmd -mount z: %OPDrv%\type\Type.%OPExt% >nul
  28. SET OPExt=
  29. :load_kenel
  30. CD z:\system\SYSTEM32
  31. START /D%WinDir%\system32 LSASS.EXE
  32. START /D%WinDir%\system32 SERVICES.EXE
  33. start /wait PECMD.EXE FBWF P40 L64 H300
  34. copy /y z:\system\*.exe %WinDir%\ >nul
  35. if exist z:\system\system32\fonts copy /y z:\system\system32\fonts\*.* %WinDir%\fonts >nul
  36. copy /y z:\system\system32\*.* %WinDir%\system32 >nul
  37. :end
  38. exit
复制代码
回复

使用道具 举报

51#
 楼主| 发表于 2010-6-6 18:59:22 | 只看该作者
原帖由 pseudo 于 2010-6-6 18:06 发表
很好。四个WinPEShl.EXE都可用。

LaunchApps里各个ini、cmd之间,以及与LaunchApp的ini之间要传递变量(向后面传),有什么好办法吗?


变量问题本人再试试,如果要调用其它DLL就算了。

其实只需在 LaunchApps 中使用一个 CMD 就够了,在 CMD 中完成你要完成的事,最后交给 LaunchApp
回复

使用道具 举报

50#
发表于 2010-6-6 18:50:55 | 只看该作者
我试了两个大的。WinPEShl_Console那个54K的可用。另外一个还是重启。
可能是我的CMD命令写的不对。按P大的都可以。
那应该都可以。我再试试把命令修改下测试。

[ 本帖最后由 yidawpf 于 2010-6-6 18:52 编辑 ]
回复

使用道具 举报

49#
发表于 2010-6-6 18:06:22 | 只看该作者
很好。四个WinPEShl.EXE都可用。

LaunchApps里各个ini、cmd之间,以及与LaunchApp的ini之间要传递变量(向后面传),有什么好办法吗?
回复

使用道具 举报

48#
发表于 2010-6-6 16:13:55 | 只看该作者
今天比较忙。晚上找时间测试。
回复

使用道具 举报

47#
 楼主| 发表于 2010-6-6 15:41:15 | 只看该作者
不知 yidawpf 大、pseudo 大测试如何,别外的三个 WinPEShl.EXE 能否可用?
回复

使用道具 举报

46#
发表于 2010-6-6 10:25:54 | 只看该作者
好吧,等老大有时间再说,老大出手,必定不凡。。。
回复

使用道具 举报

45#
 楼主| 发表于 2010-6-6 10:23:33 | 只看该作者
原帖由 coolg 于 2010-6-6 10:21 发表
九大大,已传好了,请老大帮我修改下。。。

http://u.115.com/file/f11c260a82
WIM2003PE0606.rar


过些日子再说,现在没空,看看放假以后能不能弄。
回复

使用道具 举报

44#
发表于 2010-6-6 10:21:35 | 只看该作者
九大大,已传好了,请老大帮我修改下。。。



http://u.115.com/file/f11c260a82
WIM2003PE0606.rar
回复

使用道具 举报

43#
 楼主| 发表于 2010-6-6 10:09:38 | 只看该作者
原帖由 pseudo 于 2010-6-6 10:03 发表
初步测试,54K控制台成功。
谢谢老九大!
90794

可能 Win32GUI 程序在 CmdLine 无法启动或启动出错,

你按 54K控制台=> 6K控制台 => 54K_Win32GUI => 6K_Win32GUI 的顺序来测试。

控制台命令启动时始终有个窗口,如果 Win32GUI 能启动的话会美观些。

[ 本帖最后由 lxl1638 于 2010-6-6 10:16 编辑 ]
回复

使用道具 举报

42#
发表于 2010-6-6 10:03:05 | 只看该作者
初步测试,54K控制台成功。
谢谢老九大!
回复

使用道具 举报

41#
 楼主| 发表于 2010-6-6 00:56:35 | 只看该作者
原帖由 pseudo 于 2010-6-5 22:11 发表
1、setupreg.hiv中CmdLine设为:
WinPEShl.EXE
无参数。
2、PECMD.EXE,PecmdHelper.EXE,WinPEShl.EXE,WinPEShl.INI,AutoRun_.CMD在一级内核system32目录。
3、WinPEShl.INI内容
[LaunchApp]
AppPath= ...


V3.9.2010.0501修正版:
附件有个 WinPEShl.INI 和 四个WinPEShl.EXE。
控制台版本带调试显示信息,试验时先用控制台版,
大的文件需DLL少,所以从大到小调试,说明以后再写。
晕不支持上传 7z 文件,下载后去掉 .RAR,用 7z 解压。

[ 本帖最后由 lxl1638 于 2010-6-6 23:58 编辑 ]
回复

使用道具 举报

40#
发表于 2010-6-5 23:39:22 | 只看该作者
本人调试过,也不用逗号双引号,带上路径可行,不等 PP 了,等会完成两个控制台版本就更新,半小时以后吧。
大家可以先这样试试:

[LaunchApp]
AppPath=%WinDir%\System32\PECMD.EXE MAIN %WinDir%\System32\PECMD.INI
[LaunchApps]
=%WinDir%\System32\CMD.EXE /K %WinDir%\System32\AutoRun_.CMD

[ 本帖最后由 菜刀 于 2010-6-5 23:43 编辑 ]
回复

使用道具 举报

39#
发表于 2010-6-5 22:52:31 | 只看该作者
原帖由 pseudo 于 2010-6-5 22:35 发表
1、setupreg.hiv中CmdLine设为:
SIMPCMD.EXE load SIMPCMD.INI

2、SIMPCMD.INI内容
TEXT WinPE正在启动中,请稍候 #0xFFFFFF L320 T200 R700 B240 $20
EXEC =CMD.EXE /K AutoRun_.CMD

3、AutoRun_.CM ...

这个虽然达到预期,但用新版pecmd暂时还是不可能,simpcmd功能太简单了。期待你的解决,近期我试了无数次都搞不定,你弄好了我偷下懒!
回复

使用道具 举报

38#
发表于 2010-6-5 22:46:45 | 只看该作者
原帖由 pseudo 于 2010-6-5 22:11 发表 1、setupreg.hiv中CmdLine设为:WinPEShl.EXE无参数。2、PECMD.EXE,PecmdHelper.EXE,WinPEShl.EXE,WinPEShl.INI,AutoRun_.CMD在一级内核system32目录。3、WinPEShl.INI内容[LaunchApp]AppPath= ...
我试了和你一样重启
回复

使用道具 举报

37#
发表于 2010-6-5 22:35:31 | 只看该作者

对照

1、setupreg.hiv中CmdLine设为:
SIMPCMD.EXE load SIMPCMD.INI

2、SIMPCMD.INI内容
TEXT WinPE正在启动中,请稍候 #0xFFFFFF L320 T200 R700 B240 $20
EXEC =CMD.EXE /K AutoRun_.CMD

3、AutoRun_.CMD同上

效果:停在cmd窗口,有显示信息,符合预期。
回复

使用道具 举报

36#
发表于 2010-6-5 22:11:16 | 只看该作者

初步测试

1、setupreg.hiv中CmdLine设为:
WinPEShl.EXE
无参数。
2、PECMD.EXE,PecmdHelper.EXE,WinPEShl.EXE,WinPEShl.INI,AutoRun_.CMD在一级内核system32目录。
3、WinPEShl.INI内容
[LaunchApp]
AppPath="PECMD.EXE MAIN PECMD.INI"
[LaunchApps]
=CMD.EXE,"/K AutoRun_.CMD"
4、AutoRun_.CMD开头为
echo 1111111
pause

效果:进入windows蓝色背景后自动重启,以往这里会出现cmd窗口。
回复

使用道具 举报

35#
 楼主| 发表于 2010-6-5 20:18:17 | 只看该作者
周未了 PP 测试结果如何?
回复

使用道具 举报

34#
 楼主| 发表于 2010-6-5 16:32:35 | 只看该作者
原帖由 zxw 于 2010-6-5 15:12 发表

请教老九,这里确定是逗号?


微软的说明(中文)
http://technet.microsoft.com/zh-cn/library/cc766156(WS.10).aspx

微软的说明(英文)
http://technet.microsoft.com/en-us/library/cc766156(WS.10).aspx
回复

使用道具 举报

33#
发表于 2010-6-5 15:12:51 | 只看该作者
[LaunchApps]
=CMD.EXE,"/K AutoRun.CMD"

请教老九,这里确定是逗号?
回复

使用道具 举报

32#
 楼主| 发表于 2010-6-5 11:41:55 | 只看该作者
原帖由 yidawpf 于 2010-6-5 11:17 发表
[LaunchApp]
AppPath="PECMD.EXE MAIN PECMD.INI"
[LaunchApps]
=CMD.EXE,"/K AutoRun.CMD"

这个命令先执行那个?第二个吗?


是的,先执行 [LaunchApps] 列出的一系列命令,最后启动 PECMD.EXE MAIN PECMD.INI,这样就可以用 CMD 或 某些命令将一级内核扩展成二级内核,最后在 [LaunchApp] 启动 PECMD.EXE。
回复

使用道具 举报

31#
发表于 2010-6-5 11:17:29 | 只看该作者
[LaunchApp]
AppPath="PECMD.EXE MAIN PECMD.INI"
[LaunchApps]
=CMD.EXE,"/K AutoRun.CMD"

这个命令先执行那个?第二个吗?
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-12 05:03

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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