无忧启动论坛

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

我也来个 整理盘符的小脚本 2013.01.19 x3.5版【改进】

[复制链接]
跳转到指定楼层
1#
发表于 2013-1-15 16:16:42 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
感谢大家的测试感谢 pecmd 作者,提供了如此强大的功能。

感谢 无垠 ,kcyou,andos 等诸位老大的辛苦测试。

×××××2013.01.19 x3.5版本   改进
不再需要 vbs 支持,不再需要所在盘可写 。
不处理脚本所在盘,增加参数可以自定义不处理的盘。

举例:
pecmd load order_x3.5.ini wxyz cd debug   整理除wxyz和脚本所在盘以外的所有磁盘,处理光盘,结束返回debug信息窗

pecmd load order_x3.5.ini _ nocd nodebug  整理脚本所在盘以外的所有磁盘,不处理光盘,结束返回debug信息窗 ,等同于不带任何参数运行(pecmd load order_x3.5.ini)

pecmd load order_x3.5.ini _ cd nodebug  整理脚本所在盘以外的所有磁盘,处理光盘 ,结束不返回debug信息窗

第一参数优先级大于第二参数,当 第一参数中有光盘盘符的时候,即使第二参数=cd 也不会处理盘符包含在第一参数中的光盘。
×××××××××××××××××××××××××××××××
mount_3.5.zip (10.92 KB, 下载次数: 320)



要求 pecmd 是2012版本
mountvol已经是win7中的版本,请使用此版本的mountvol.



需要附带一个 mount.cmd 脚本,用于将某盘盘符转为另一盘盘符,需要MOUNTVOL 支持。

支持本地硬盘激活分区先行挂载,支持光驱盘符后移。
脚本遍历 c-w 各盘,计算出硬盘号列表,

然后把硬盘和u盘按顺序重新分配盘符。
比如:按照c-w 的顺序计算得到硬盘列表为 2,1,0,4,3 其中 1 是u盘,2,0,4 ,3 是硬盘,那么
脚本会先将这些盘的卷卸载 ,然后先按照 0,2,3,4的顺序挂接硬盘,再将u盘挂接。这样本地硬盘会一次分配盘符,然后是u盘。
这里考虑可能有超过10个的磁盘,所以引入了顺序排列的想法。可以支持24个磁盘。我说的是磁盘不是磁盘分区个数。

装载顺序:本地硬盘,可移动硬盘u盘,光盘。


order_x3.41.ini  用mount * 代替pecmd show *F:-1 规避pecmd 对动态磁盘支持不好的问题。

[ 本帖最后由 dos时代菜鸟 于 2013-1-21 20:12 编辑 ]
2#
发表于 2013-1-15 17:34:41 | 只看该作者
与PECMD2012里的示例脚本ORDERUSB.WCS内容差不多,不知有什么不同。

_SUB  FREEUSB
  FORM  &&T=%&D%
  FIND $DRIVE_FIXED = %&T%,!! FIND $NA = %&RP%,! SUBJ *%&D%  //U盘后的固定磁盘
  FIND $DRIVE_USBFLASH = %&T%, ENVI  &T=DRIVE_USBDISK    //USB软盘(DRIVE_USBFLASH) ,当作  USB硬盘(DRIVE_USBDISK)
  FIND $DRIVE_USBDISK = %&T%,!! SUBJ *%&D%  //U盘
  FIND $DRIVE_USBDISK = %&T%,!! FIND $%&RP%=NA, ENVI &RP=%&D%  // &RP:第一个U盘
  MSTR &D=%&I%,1,%&DRVS%
  CALC #&I=%&I% + 1
_END
//ORDER_DRIVE
//参数 [-reg]
//-reg 删除MS对应注册表项
_SUB ORDER_DRIVE
  FIND -reg = %~1, REGI HKLM\SYSTEM\MountedDevices\!
  TEAM ENVI &&DRVS=CDEFGHIJKLMNOPQRSTUV****| ENVI  &&I=2| ENVI  &&D=C| ENVI &&RP=NA
  LOOP $* = %&D%,! CALL FREEUSB
  //重新加载HD,USB
  TEAM  SHOW *F:0 | SHOW *U:0,,,U //USB 从U:开始
  //TEAM  SHOW *F:-1 | SHOW *U:-1,,,U //USB 从U:开始. 这个隐藏分区也加载
_END  
CALL ORDER_DRIVE

把U改为O后盘符整理效果一样。具体细节的区别,不知能否弥补这个的不足?

[ 本帖最后由 kcyou 于 2013-1-15 20:48 编辑 ]
回复

使用道具 举报

3#
发表于 2013-1-15 18:29:02 | 只看该作者
占领前排请教楼主,如何在PE里识别目标硬盘是GPT格式,并把PE安装到硬盘,达到重启能进入PE呢,,GPT硬盘第一分区98M,第二分区为保留,不写数据,第三为普通的C盘了
回复

使用道具 举报

4#
发表于 2013-1-15 20:05:54 | 只看该作者
DOS批处理王,,,学习
回复

使用道具 举报

5#
发表于 2013-1-15 20:26:32 | 只看该作者
支持,虽然我那个批处理搞了2年多,但是,技术无止境,永远支持最好的。
回复

使用道具 举报

6#
 楼主| 发表于 2013-1-15 21:48:03 | 只看该作者
原帖由 kcyou 于 2013-1-15 17:34 发表
与PECMD2012里的示例脚本ORDERUSB.WCS内容差不多,不知有什么不同。

_SUB  FREEUSB
  FORM  &&T=%&D%
  FIND $DRIVE_FIXED = %&T%,!! FIND $NA = %&RP%,! SUBJ *%&D%  //U盘后的固定磁盘
  FIND $DRIVE_ ...


首先计算算法不一样,其次用 forx 代替cale对各盘的循环计算。

用了一些 pecmd 的字符处理命令,比如:mstr ,RPOS。

[ 本帖最后由 dos时代菜鸟 于 2013-1-15 21:51 编辑 ]
回复

使用道具 举报

7#
 楼主| 发表于 2013-1-15 21:49:28 | 只看该作者
原帖由 trianv 于 2013-1-15 18:29 发表
占领前排请教楼主,如何在PE里识别目标硬盘是GPT格式,并把PE安装到硬盘,达到重启能进入PE呢,,GPT硬盘第一分区98M,第二分区为保留,不写数据,第三为普通的C盘了


gtp一时还没有接触。看来帮不了你什么了。
回复

使用道具 举报

8#
发表于 2013-1-15 21:54:58 | 只看该作者
不知多硬盘的
有试过的吗?
回复

使用道具 举报

9#
 楼主| 发表于 2013-1-15 22:02:55 | 只看该作者
原帖由 12050202 于 2013-1-15 21:54 发表
不知多硬盘的
有试过的吗?



这个好办,用 diskpart建立10个8个的vhd 然后,手动卸载 几个,再手动调换与 本地硬盘的盘符,
再运行这个脚本 ,就可以看到效果了。
回复

使用道具 举报

10#
发表于 2013-1-15 22:12:08 | 只看该作者
请教楼主,能以第一块硬盘的活动分区为C盘吗?


如下图:














[ 本帖最后由 无垠 于 2013-1-15 22:14 编辑 ]
回复

使用道具 举报

11#
 楼主| 发表于 2013-1-15 22:18:43 | 只看该作者
原帖由 无垠 于 2013-1-15 22:12 发表
请教楼主,能以第一块硬盘的活动分区为C盘吗?


如下图:


http://bbs.wuyou.net/attachment.php?aid=154638&noupdate=yes



http://bbs.wuyou ...


这个要看 pecmd 的show 运行算法如何,
另外要 用脚本计算 实现这个功能应该也是可以的,就是要废些周折 。这个需要慢慢想想。
回复

使用道具 举报

12#
发表于 2013-1-15 22:19:47 | 只看该作者

回复 #11 无垠 的帖子

呵呵,我也想这样,有活动分区的硬盘的分区先排,当然活动分区要排成C:
貌似victor那个也还没能这样排呢
回复

使用道具 举报

13#
发表于 2013-1-15 22:40:58 | 只看该作者
往往挂载维修用的硬盘时,其已经有活动分区和逻辑分区的,这样在区分本机硬盘和外来(维修的)硬盘时,就容易搞混了。
用盘符卷标重命名也是一种考虑的方法。
硬性的分区排序带来的麻烦反而更容易被混淆。
回复

使用道具 举报

14#
发表于 2013-1-16 04:37:26 | 只看该作者
原帖由 andos 于 2013-1-15 22:19 发表
呵呵,我也想这样,有活动分区的硬盘的分区先排,当然活动分区要排成C:
貌似victor那个也还没能这样排呢


我早就实现这个功能了。
回复

使用道具 举报

15#
发表于 2013-1-16 07:56:22 | 只看该作者
原帖由 victor888 于 2013-1-16 04:37 发表


我早就实现这个功能了。

不过一带IDE盘,IDE盘就在前了
不过IDE盘也快不用了,所以可改可不改吧....



[ 本帖最后由 andos 于 2013-1-16 08:04 编辑 ]
回复

使用道具 举报

16#
发表于 2013-1-16 08:02:03 | 只看该作者
我的pe是先用 饭大的函数整理,再来V大的二次理顺。不知道有IDE硬盘会怎样?
回复

使用道具 举报

17#
发表于 2013-1-16 10:31:03 | 只看该作者
还是喜欢按物理盘的顺序排列,U盘固定盘符为U,这样做无论备份还是还原不至于搞混。
回复

使用道具 举报

18#
 楼主| 发表于 2013-1-16 11:19:49 | 只看该作者
原帖由 无垠 于 2013-1-15 22:12 发表
请教楼主,能以第一块硬盘的活动分区为C盘吗?


如下图:


http://bbs.wuyou.net/attachment.php?aid=154638&noupdate=yes



http://bbs.wuyou ...

看看这个行不行 ,增加一个所有磁盘序列中的激活分区列表。在重新加载每一个硬盘之前先 加载这个硬盘上的激活分区。

  1. call order_drive
  2. //盘符整理子程序
  3. _SUB ORDER_DRIVE  
  4.   team ENVI wx=|ENVI d=|envi hds=|envi hd_=|envi hhh=|envi hdp=|envi hdp2=|envi hdpa=
  5.   forx * C D E F G H I J K L M N O P Q R S T U V W,D,CALL FREEUSB
  6.   envi hds=0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24
  7.   forx * %hds% ,hd_,team rpos* hhh=_%hd_%_,0,%hdp%|find  $%hhh%=0,!find  $%hdp2%=,envi hdp2=%hd_%!envi hdp2= %hdp2% %hd_%
  8.   FORX * %HDP2%,HDX,CALL HDA2X
  9.         SHOW *U:-1,,,O
  10. _END  
  11. _SUB  FREEUSB
  12.    envi t=
  13.          FORM T=%D%
  14.          FIND $%T%=DRIVE_FIXED,TEAM CALL HDPX| SUBJ *%D%         //获得硬盘号列表并关闭卷
  15.          FIND $%T%=DRIVE_USBFLASH,SUBJ *%D%   //USB软盘 关闭卷
  16.    FIND $%T%=DRIVE_USBDISK,SUBJ *%D%    //U盘 关闭卷
  17. _END
  18. _SUB HDPX
  19.   team envi l=|envi hd=|envi p=|envi a=
  20.   PART list DRV %D%:,X
  21.   team mstr hd=<-1>%x%|mstr p=<1>%x%|mstr a=<3>%x%
  22.   RPOS L=_%HD%_,0,_%HDP%_
  23.   FIND $%HDP%=,ENVI HDP=_%HD%_!FIND $%L%=0,ENVI HDP=%HDP% _%HD%_
  24.   FIND $%a%=1,!!FIND $%HDPA%=,ENVI HDPA=_%HD%:%P%_!ENVI HDPA=%HDPA% _%HD%:%P%_
  25. _END
  26. _SUB HDA2X
  27.   team envi hdpax=|envi hdpax1=
  28.   forx * %hdpa%,hdpax1,team rpos* l2=_%hdx%:,0,%hdpax1% |find $%l2%=0,!envi hdpax=%hdpax1%
  29.   find $%hdpax%=,!team strl l3=%hdpax%|calc l3=%l3%-2|mstr hdpax=2,%l3%,%hdpax%|show *%hdpax%
  30.   show *%hdx%:-1
  31. _END
复制代码

[ 本帖最后由 dos时代菜鸟 于 2013-1-16 11:21 编辑 ]
回复

使用道具 举报

19#
发表于 2013-1-16 11:39:52 | 只看该作者

回复 #19 dos时代菜鸟 的帖子





活动分区为C盘了,但U盘没有固定为U。

能解决U盘符问题,就是一个相当好的盘符理顺工具了

[ 本帖最后由 无垠 于 2013-1-16 11:43 编辑 ]
回复

使用道具 举报

20#
 楼主| 发表于 2013-1-16 11:47:36 | 只看该作者
u盘被固定到了o盘,u盘现在主要针对 DRIVE_USBDISK 和DRIVE_USBFLASH,不知道量产和其他模式的u盘如何处置,情况太多。我这里用u盘,正常可以变为o盘啊。
另外 u距离 w 太近,如果有多个u盘,反而可能出现混乱,所以我用 了 o: .


你的那个 d盘 能用 pecmd subj d: 卸载 和用 pecmd show *U:-1 装载 么?

可以用开始菜单运行 pecmd team form t=d|mess %t% ,看看你的d盘是什么类型么?

[ 本帖最后由 dos时代菜鸟 于 2013-1-16 12:21 编辑 ]
回复

使用道具 举报

21#
发表于 2013-1-16 12:30:40 | 只看该作者

回复 #21 dos时代菜鸟 的帖子

可以卸载

装载了还是D

类型查不出:

回复

使用道具 举报

22#
 楼主| 发表于 2013-1-16 12:33:14 | 只看该作者

命令 是 pecmd team form t=d|mess %t%
不是pecmd team formt=d|mess %t%

form t 中间有空格!!!

估计你那个是 usb接口的 DRIVE_REMOVABLE ,不知道所有的DRIVE_REMOVABLE 是否都可以被 pecmd show *U:-1 命令装载.

[ 本帖最后由 dos时代菜鸟 于 2013-1-16 13:27 编辑 ]
回复

使用道具 举报

23#
发表于 2013-1-16 14:16:40 | 只看该作者
原帖由 dos时代菜鸟 于 2013-1-16 12:33 发表

命令 是 pecmd team form t=d|mess %t%
不是pecmd team formt=d|mess %t%

form t 中间有空格!!!

估计你那个是 usb接口的 DRIVE_REMOVABLE ,不知道所有的DRIVE_REMOVABLE 是否都可以被 pecmd sh ...


是的,图搞丢了

[ 本帖最后由 无垠 于 2013-1-16 14:18 编辑 ]

1.jpg (29.7 KB, 下载次数: 91)

1.jpg
回复

使用道具 举报

24#
 楼主| 发表于 2013-1-16 14:18:33 | 只看该作者
原帖由 无垠 于 2013-1-16 14:16 发表


155168


增加一段话,看看能不能支持 可移动盘,在楼下。
多谢测试。

[ 本帖最后由 dos时代菜鸟 于 2013-1-16 14:45 编辑 ]
回复

使用道具 举报

25#
 楼主| 发表于 2013-1-16 14:36:06 | 只看该作者
看看能不能支持 disk removeable
重新上传,

order_x3.1.ini.7z (960 Bytes, 下载次数: 15)

[ 本帖最后由 dos时代菜鸟 于 2013-1-16 15:26 编辑 ]
回复

使用道具 举报

26#
发表于 2013-1-16 15:34:21 | 只看该作者
这次可以了,但PE启动时多了个磁盘序列的提示,占用时间,最好不要它。



回复

使用道具 举报

27#
 楼主| 发表于 2013-1-16 15:54:41 | 只看该作者
http://bbs.wuyou.net/attachment.php?aid=155206

正式发布

在一楼,支持本地硬盘,移动硬盘,u盘

[ 本帖最后由 dos时代菜鸟 于 2013-1-16 17:00 编辑 ]
回复

使用道具 举报

28#
发表于 2013-1-16 17:01:03 | 只看该作者
原帖由 dos时代菜鸟 于 2013-1-16 11:47 发表
u盘被固定到了o盘,u盘现在主要针对 DRIVE_USBDISK 和DRIVE_USBFLASH,不知道量产和其他模式的u盘如何处置,情况太多。我这里用u盘,正常可以变为o盘啊。
另外 u距离 w 太近,如果有多个u盘,反而可能出现混乱 ...



forx * C D E F G H I J K L M N O P Q R S T U V W,D,CALL FREEUSB
建议把W去掉,因为一部分PE挂载WIM的虚拟盘为W
回复

使用道具 举报

29#
发表于 2013-1-16 17:05:30 | 只看该作者

回复 #28 dos时代菜鸟 的帖子

其实
mess 本地硬盘序列:%hdp2% \n移动磁盘序列:%rdp%\nU盘序列忽略......
可以不用删,前面加// 注消就可以了吧,方便日后测试用

[ 本帖最后由 andos 于 2013-1-16 17:14 编辑 ]
回复

使用道具 举报

30#
 楼主| 发表于 2013-1-16 17:08:41 | 只看该作者
原帖由 kcyou 于 2013-1-16 17:01 发表



forx * C D E F G H I J K L M N O P Q R S T U V W,D,CALL FREEUSB
建议把W去掉,因为一部分PE挂载WIM的虚拟盘为W


那就自己撤掉吧,也可以自己改。或者wim 挂到y
其实我的pe 也用到w,我自己就去掉了w。
呵呵。
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-11-30 18:19

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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