无忧启动论坛

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

diskpart 外壳脚本 简体中文版和英文版 Ver9.0

    [复制链接]
121#
 楼主| 发表于 2018-6-19 21:23:58 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-19 22:58 编辑

唉,添加了 可以将分区 控制为 只读 的功能,就要在列表添加 一条数据用来显示 这个属性。





那个  卷 info 项目就是显示 卷 是否具有隐藏属性、是否脱机状态用的。RW 用来表示 卷 是否可读可写。
disk 行数据中 ,联机 与 脱机 相对应
gpt 模式下  不能通过  id 判断 卷 fs类型 ,gpt 结构中  卷的 fs 是 格式化级别的事情,而 id 是分区级别的事情。

千万不要把脚本 所在分区 设置为 只读啊,临时文件无法生成,脚本就废了。

online/offline  vol 前后 都要考虑 盘符 与卷的关联问题,脱机前先卸载盘符,联机后要分配盘符。


有了设置 只读属性功能,以后 电脑上的 重要东西 都可以 放入一个 分区以后 在 只读,就像 软盘 的写保护。
回复

使用道具 举报

122#
发表于 2018-6-20 00:42:10 | 只看该作者
本帖最后由 nttwqz 于 2018-6-20 00:52 编辑
dos时代菜鸟 发表于 2018-6-19 21:23
唉,添加了 可以将分区 控制为 只读 的功能,就要在列表添加 一条数据用来显示 这个属性。


我想,你的ID数据文本part_ids.txt应该来自我的批处理,欢迎使用数据哈~ 也欢迎共享数据哈~

不过呢,我这人一般是比较懒的,最初是用了图片文字识别的,然后再修改错误,前几日偶然发现三处是错误的(红色部分,2.21中已经改了),你改过来吧,后来增加的是手动敲的。你那末尾的IB IC IE 应该是1B 1C 1E,都是16进制,最多到F。如果我发现后续错误,会再次回帖。

set "x18=AST Swap"
set "x1B=Hidden FAT32"
set "x1C=Hidden FAT32 LBA"
set "x1E=Hidden FAT16 LBA"

set "x24=NEC DOS"


还有GPT分区属性,其实远不止帮助中的5种,因为这东西是可以组合的。

比如,同时设置三个属性

0x0000000000000001  必须
0x8000000000000000  防止为分区自动分配驱动器号
0x4000000000000000  隐藏

gpt attributes=0xd000000000000001,那么该分区将同时具备隐藏、必须、不自动挂载三个属性,这个是我自己琢磨出来的,已验证生效!可恶的百度和必应,搜半天都没有。

你应该已经看出来了,这个是高位和低位分别相加实现的。

0x0+0x8+0x4=0xd
0+0+1=1        (如果没有其它属性,末尾就是0和1的问题,也就是必须和非必须的问题)

我想,就帮助中的5种来说,组合远不止这五种。。。
回复

使用道具 举报

123#
发表于 2018-6-20 02:40:54 | 只看该作者
part_ids.txt开头的是卷id
命令类似SET ID=ebd0a0a2-b9e5-4433-87c0-68b6b72699c7

你说的gpt attributes=0xd000000000000001是gpt分区属性
命令类似gpt attributes=0xd000000000000001,不是一回事吧。

RW列可以移动到卷标前。
回复

使用道具 举报

124#
 楼主| 发表于 2018-6-20 08:07:15 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-20 08:21 编辑

不知道 可以 分别 用 gpt 命令设置 一个分区的属性以后,属性是否会叠加。gpt 这命令 我还没深入研究,跟 attrib vol set  命令 不一样,它直接操作到盘上,估计 换电脑 应该也生效。但是仅限于 gpt 分区。

rw 列 是打算放 label 前面的 ,后来 想着 用到这一列的人 也不多,就 又 放回后面了。那我就 再改到前面去。这个 容易。

微软 的 diskpart 卷info 中 把 系统所在 分区 定义为 启动,可能是看到是 winloader 运行的地方,
而 bootmgr bcd  所在的分区却被 定义为 系统,个人理解这才应该是 被定义为 启动 。 可能 外国人 也有我这样的 误解,所以导致前些时候 win10 升级补丁 把系统文件 更新到了 bcd 所在的 efi 分区里,导致了系统崩溃。
回复

使用道具 举报

125#
发表于 2018-6-20 09:00:25 | 只看该作者
回复

使用道具 举报

126#
 楼主| 发表于 2018-6-20 09:18:52 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-20 09:27 编辑

多谢
part_ids_936.txt (6.53 KB, 下载次数: 5)
回复

使用道具 举报

127#
发表于 2018-6-20 10:59:20 | 只看该作者
本帖最后由 freesoft00 于 2018-6-20 11:03 编辑


英文中的这个文件还没有更新。在英文系统中使用中文版也可以正常使用了,除了提示信息乱码外,可以正常使用了。

下面是磁盘信息
  1. Num Vol HD.P_ LTR FS/ID Offset   Free   Act Size RW Label        P.Type_V.Stat_Info_type_P.ID/HD.Sta_Dyn_name....         
  2.    1 ---  0    --- ----- ------     0B   30GB MBR -- ------------ Online_BAS_.[VMware, VMware Virtual S SCSI Disk Device]
  3.    2   1  0.1   *  NTFS  1024KB  115MB  350MB  *  RW System Rese  Primary_Healthy_System_Partition.{07}
  4.    3   2  0.2   C  NTFS   351MB   12GB   20GB  .  RW              Primary_Healthy_Boot_Partition.{07}
  5.    4   3  0.3   D  NTFS    21GB    8GB    8GB  .  RW              Primary_Healthy_._Partition.{07}
  6.    5 ---  1    --- ----- ------     0B   60GB GPT -- ------------ Online_BAS_.[VMware, VMware Virtual S SCSI Disk Device]
  7.    6   7  1.1   F  NTFS  1024KB      .  500MB  .  ..              Recovery_Healthy_Hidden_Partition.{de94bba4-06d1-4d40-a16a-bfd50179d6ac}
  8.    7   8  1.2   G  FAT32  501MB      .  300MB  *  ..              System_Healthy_Hidden_Partition.{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
  9.    8   *  1.3   *  {MSR}  801MB      .  128MB  .  ..              Reserved_._._._.{e3c9e316-0b5c-4db8-817d-f92df00215ae}
  10.    9   4  1.4   H  NTFS   929MB    9GB   10GB  .  RW              Primary_Healthy_._Partition.{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
  11.   10   5  1.5   I  NTFS    10GB   19GB   20GB  .  RW              Primary_Healthy_._Partition.{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
  12.   11   6  1.6   J  NTFS    30GB   29GB   29GB  .  RW              Primary_Healthy_._Partition.{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
  13.   12 ---  2    --- ----- ------ 1024GB 1024GB MBR -- ------------ Online_BAS_Expandable.[D:\999.vhd]
复制代码


  1. ---Auto_fdisk ------------------------  Wed 06/20/2018 -- 10:37:44.25 ---------
  2. select disk 2
  3. clean
  4. convert MBR
  5. create part PRIMARY size=209715  
  6. active
  7. format fs=NTFS label="System" quick OVERRIDE  
  8. assign
  9. create part EXTENDED
  10. create part LOGICAL size=209715
  11. format fs=NTFS label="" quick OVERRIDE  
  12. assign
  13. create part LOGICAL size=209715
  14. format fs=NTFS label="" quick OVERRIDE  
  15. assign
  16. create part LOGICAL size=209715
  17. format fs=NTFS label="" quick OVERRIDE  
  18. assign
  19. create part LOGICAL
  20. format fs=NTFS label="" quick OVERRIDE  
  21. assign
  22. --------------------------------------------------------------------
复制代码

新添加的磁盘或者vhd虚拟磁盘文件,如果没有初始化,使用自动分区工具无法完成分区。
我的操作过程是添加vhd虚拟磁盘文件,然后不初始化,离线,然后在线,然后自动分区, 不行。打开磁盘管理器后,手动初始化然后再自动分区就可以了。看了一下好像diskpart没有初始化的命令。
出错信息如新:
...Running scripts......
---Auto_fdisk-------------------------------------

Microsoft DiskPart version 6.3.9600

Copyright (C) 1999-2013 Microsoft Corporation.
On computer: WIN-7HN1OP21UIV

DISKPART>
Disk 2 is now the selected disk.

DISKPART>
DiskPart succeeded in cleaning the disk.

DISKPART>
DiskPart has encountered an error: The media is write protected.
See the System Event Log for more information.

DISKPART>
DiskPart has encountered an error: The media is write protected.
See the System Event Log for more information.

DISKPART>
There is no partition selected.
Please select a partition and try again.

DISKPART>
There is no volume selected.
Please select a volume and try again.

DISKPART>
There is no volume specified.
Please select a volume and try again.

DISKPART>
DiskPart has encountered an error: The media is write protected.
See the System Event Log for more information.

DISKPART>
DiskPart has encountered an error: The media is write protected.
See the System Event Log for more information.

DISKPART>
There is no volume selected.
Please select a volume and try again.

DISKPART>
There is no volume specified.
Please select a volume and try again.

DISKPART>
DiskPart has encountered an error: The media is write protected.
See the System Event Log for more information.

DISKPART>
There is no volume selected.
Please select a volume and try again.

DISKPART>
There is no volume specified.
Please select a volume and try again.

DISKPART>
DiskPart has encountered an error: The media is write protected.
See the System Event Log for more information.

DISKPART>
There is no volume selected.
Please select a volume and try again.

DISKPART>
There is no volume specified.
Please select a volume and try again.

DISKPART>
DiskPart has encountered an error: The media is write protected.
See the System Event Log for more information.

DISKPART>
There is no volume selected.
Please select a volume and try again.

DISKPART>
There is no volume specified.
Please select a volume and try again.

DISKPART>
------------------------------------------
---A refresh list is being refreshed......
---Freshing DISK#2

---Press any key to return to the partition list and the main menu......



磁盘状态也可以做成一列。
Disk   Status  Size     Free
Disk 0  On     30 GB      0 B
Disk 1  Off     60 GB    60 GB

on是在线,off是离线。这样是否更好,要不后面太挤了。


gpt设置属性的命令类似这样。
create partition primary size=900 id="de94bba4-06d1-4d40-a16a-bfd50179d6ac"
gpt attributes=0x8000000000000001
创建900MB的恢复分区,并设置分区属性为不自动分配盘符。
回复

使用道具 举报

128#
发表于 2018-6-20 11:18:14 | 只看该作者
虽然英文系统中出错了。但是中文系统中测试没有问题。
按照同样的操作,正常分区了。
回复

使用道具 举报

129#
 楼主| 发表于 2018-6-20 11:47:53 | 只看该作者
freesoft00 发表于 2018-6-20 10:59
英文中的这个文件还没有更新。在英文系统中使用中文版也可以正常使用了,除了提示信息乱码外,可以正常 ...

vhd 去自动分区 不进行手动初始化也可以的,我测试了,没问题啊,通过脚本 脱机/联机 初始化 自动分区 都可以啊。自动分区  也有初始化命令
,你那个英文提示 写保护,可能是 虚拟磁盘服务驱动 有问题了,可能 被独占了。vhd 驱动有的时候就犯这个病。





gpt 设置属性 的 那个 不知道 跟 attrib vol set 是否 作用的是一个地方。


gtp id 列表,暂时 没英文的。
回复

使用道具 举报

130#
 楼主| 发表于 2018-6-20 11:58:14 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-20 12:30 编辑

vol_info 没办法对齐显示的,当脱机是 显示 脱机 offline ,但是,当 联机以后就显示 更丰富的信息,比如 system /hidden /boot  等等而不显示 online ,如果 联机而没有什么特别的,他就啥也不显示。


attrib vol set hidden 相当于  gpt 指令 把 分区属性 设置成 0X4000000000000000
attrib vol set NODEFAULTDRIVELETTER 相当于  gpt 指令 把 分区属性 设置成 0X8000000000000000
attrib vol set ReadOnl  相当于  gpt 指令 把 分区属性 设置成 0X1000000000000000

多个设置可以叠加效果
由此,需要进一步验证,如果 u盘 是 gpt 结构的,是否可以 通过  attrib vol set 的方式 设置其写保护?


唯一不同的是使用范围不一样,attrib vol 只能处理卷 ,对于那些没有 vol 号 的分区 就不能进行设置。比如 msr
而  gpt 命令则只能对 gpt 分区起作用。
回复

使用道具 举报

131#
发表于 2018-6-20 12:22:14 | 只看该作者
本帖最后由 freesoft00 于 2018-6-20 12:44 编辑

https://blog.csdn.net/chongyang198999/article/details/43408249

点评

嗯, 但是 attrib vol set 也能设置 gpt 分区属性  详情 回复 发表于 2018-6-20 12:25
回复

使用道具 举报

132#
 楼主| 发表于 2018-6-20 12:25:12 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-20 12:26 编辑
freesoft00 发表于 2018-6-20 12:22
set针对mbr分区,
gpt针对gpt分区属性


嗯,
但是 attrib vol set 也能设置 gpt 分区属性
我用 attrib vol set 对 gpt 分区进行设置以后 ,通过 Detail part 可以看到 gpt 分区的属性数值 也相应的发生了改变。
回复

使用道具 举报

133#
 楼主| 发表于 2018-6-20 12:38:13 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-20 12:50 编辑

vol_info 没办法对齐显示的,当脱机是 显示 脱机 offline ,但是,当 联机以后就显示 更丰富的信息,比如 system /hidden /boot  等等而不显示 online ,如果 联机而没有什么特别的,他就啥也不显示。

而这个 vol_info 还是需要的,因为 有的 gpt 分区 是不能通过 detail vol 的方式 获取其 隐藏 属性的,比如 恢复分区。而这个  vol_info 正好可以显示这个属性。


中文下,一个汉字占两个字符显示位,却被记为一个字符。导致 文本行字符计数存在偏差,而目前 也不知道 还有啥办法 区分中文字符与英文字符。
回复

使用道具 举报

134#
发表于 2018-6-20 12:44:02 | 只看该作者
本帖最后由 freesoft00 于 2018-6-20 12:47 编辑
dos时代菜鸟 发表于 2018-6-20 12:25
嗯,
但是 attrib vol set 也能设置 gpt 分区属性
我用 attrib vol set 对 gpt 分区进行设置以后 , ...


那有可能都可以。
看帮助也可以设置guid分区。
https://en.wikipedia.org/wiki/GUID_Partition_Table
有些属性只针对基本磁盘分区。这里面有guid的英文信息

点评

我关心 那个 BIOS boot partition  详情 回复 发表于 2018-6-20 13:00
回复

使用道具 举报

135#
 楼主| 发表于 2018-6-20 13:00:19 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-20 13:18 编辑
freesoft00 发表于 2018-6-20 12:44
那有可能都可以。
看帮助也可以设置guid分区。
https://en.wikipedia.org/wiki/GUID_Partition_Table ...


我关心 那个 BIOS boot partition

好像可以把  grub2 的 core.img 弄成 这个 bios boot parition ,然后 传统 leagcy 模式下也可以用 gpt 结构的硬盘了。
关键是 leagcy 启动 gpt硬盘上的 grub2-core.img 以后,能否找到 gpt 结构上各个分区的引导文件,用 leagcy 的方式通过 bootmgr 启动bcd 进入系统。
回复

使用道具 举报

136#
发表于 2018-6-20 13:03:57 | 只看该作者
dos时代菜鸟 发表于 2018-6-20 11:58
vol_info 没办法对齐显示的,当脱机是 显示 脱机 offline ,但是,当 联机以后就显示 更丰富的信息,比如 s ...

attrib命令有些属性在gpt分区无法完成吧。
比如设置为
0x0000000000000001属性。

点评

是的,这个肯定 只针对 gpt .  详情 回复 发表于 2018-6-20 13:21
回复

使用道具 举报

137#
发表于 2018-6-20 13:07:03 | 只看该作者

点评

正在看,以后 gpt 是趋势,而 慢慢地,会这样的 尤其是u盘维护,就是gpt 照顾 leagcy 的存在而兼容一下。而不是现在的大家都用 leagcy 的Fat32做 三启 u盘。  详情 回复 发表于 2018-6-20 13:23
回复

使用道具 举报

138#
 楼主| 发表于 2018-6-20 13:21:10 | 只看该作者
freesoft00 发表于 2018-6-20 13:03
attrib命令有些属性在gpt分区无法完成吧。
比如设置为
0x0000000000000001属性。

是的,这个肯定 只针对 gpt .
回复

使用道具 举报

139#
 楼主| 发表于 2018-6-20 13:23:06 | 只看该作者
本帖最后由 dos时代菜鸟 于 2018-6-20 13:46 编辑


正在看,以后 gpt 是趋势,而 慢慢地,会这样的
尤其是u盘维护,就是gpt 照顾 leagcy 的存在而兼容一下。而不是现在的大家都用 leagcy 的Fat32做 三启 u盘。

有的u盘 只支持分一个分区,可能还是不行。

是否否用 bootice 将 grub2 的 leagcy 的 core.img 恢复到这个 bios partition ,就可以让 这个 gpt 在bios 下启动?
回复

使用道具 举报

140#
发表于 2018-11-16 17:25:52 | 只看该作者
大侠您好,我经过多次测试发现一个问题,就是输出到temp文件夹的信息和CMD界面的信息,第一行的文字显示不一致,CMD中的是正确的,

下面的是temp下生成的信息,ACT和SIZE颠倒了,另外,在CMD中没有显示末尾的GUID:

Num Vol HD.P_ LTR FS/ID Offset   Free   Act Size RW Label        P.Type_V.Stat_Info_type_P.ID/HD.Sta_Dyn_name....
   1 ---  0    --- ----- ------     0B  223GB GPT -- ------------ Online_BAS_.[Apacer  AS340 240GB ATA Device]
   2   4  0.1   *  FAT32 1024KB      . 1027MB  *  .. EFI          System_Healthy_System_Partition.{c12a7328-f81f-11d2-ba4b-00a0c93ec93b}
   3   0  0.2   C  NTFS  1028MB   34GB   80GB  .  RW Win          Primary_Healthy_Boot_Partition.{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
   4   1  0.3   D  NTFS    81GB   10GB   24GB  .  RW SOFT         Primary_Healthy_._Partition.{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
   5   2  0.4   *  NTFS   105GB   12GB   35GB  .  RW 7            Primary_Healthy_._Partition.{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
   6   3  0.5   E  NTFS   141GB   28GB   82GB  .  RW 笔记         Primary_Healthy_._Partition.{ebd0a0a2-b9e5-4433-87c0-68b6b72699c7}
   7 ---  1    --- ----- ------     0B  465GB MBR -- ------------ Online_BAS_.[WDC WD5000BPVT-22HXZT3 ATA Device]
   8   5  1.1   *  FAT32 1024KB  177MB 1025MB  *  RW ESP          Primary_Healthy_._Partition.{0B}
   9   6  1.2   *  NTFS  1026MB   26GB   62GB  .  RW Win7         Primary_Healthy_._Partition.{07}
  10   7  1.3   F  NTFS    63GB  261GB  402GB  .  RW 课件         Primary_Healthy_._Partition.{07}
回复

使用道具 举报

141#
发表于 2018-11-16 17:28:47 | 只看该作者
打开大侠的批处理文件,有上千行代码,看的我都头疼,大侠,对于dos的研究,真是炉火纯清,实在是佩服,景仰
回复

使用道具 举报

142#
发表于 2018-11-24 16:10:25 | 只看该作者
谢谢 辛苦了
回复

使用道具 举报

143#
 楼主| 发表于 2019-2-25 10:45:15 | 只看该作者
2013kyj 发表于 2018-11-16 17:28
打开大侠的批处理文件,有上千行代码,看的我都头疼,大侠,对于dos的研究,真是炉火纯清,实在是佩服,景 ...


分段编辑 ,每段 "exit /b 0" 结束,用  "call :段名"   调用,每段都可以自带 参数运行。
这样做 比较科学。编起来也不费劲。
回复

使用道具 举报

144#
发表于 2019-12-10 20:51:50 | 只看该作者
本帖最后由 Anson4 于 2019-12-10 20:54 编辑
dos时代菜鸟 发表于 2019-2-25 10:45
分段编辑 ,每段 "exit /b 0" 结束,用  "call :段名"   调用,每段都可以自带 参数运行。
这样做 比 ...

-8.61在英文版的Win10系统上运行异常,硬盘分区信息全部是空的,有点小失望。而且开头的“936”获取就不准确
刚发现原来最新的是v9,试试看。
回复

使用道具 举报

145#
发表于 2019-12-10 22:57:21 | 只看该作者
支持一下,想下载,不够权限
回复

使用道具 举报

146#
发表于 2019-12-11 08:16:38 | 只看该作者
自己做了一个

捕获.PNG (68.36 KB, 下载次数: 333)

捕获.PNG
回复

使用道具 举报

147#
发表于 2019-12-12 18:06:08 来自手机 | 只看该作者
610644034 发表于 2019-12-11 08:16
自己做了一个

看起来不错的样子!
回复

使用道具 举报

148#
发表于 2021-9-19 06:46:21 | 只看该作者
感谢大分享, 请问diskpart能查看和设置分区的UUID吗, 不是分区类型的GUID,坛里找了半天没有找到相关的命令行工具
回复

使用道具 举报

149#
 楼主| 发表于 2021-9-20 21:18:31 | 只看该作者
2013kyj 发表于 2021-9-19 06:46
感谢大分享, 请问diskpart能查看和设置分区的UUID吗, 不是分区类型的GUID,坛里找了半天没有找到相关的命令 ...

uuid ,貌似 diskpart 不行,不过 grub 相关工具可以,忘了是哪个贴了,你自己找一下吧。
回复

使用道具 举报

150#
发表于 2021-9-28 20:08:32 | 只看该作者
dos时代菜鸟 发表于 2021-9-20 21:18
uuid ,貌似 diskpart 不行,不过 grub 相关工具可以,忘了是哪个贴了,你自己找一下吧。

多谢指教
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-12-1 08:31

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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