本帖最后由 5i365 于 2021-8-9 19:44 编辑
回复 46# idwma
第14-20行
for /f "tokens=2 delims= " %%c in ('^(echo select disk %disk% ^&echo list part^)^|diskpart^|findstr /i "System Reserved Recovery"') do (
if not "%%c"=="" (
(echo sel disk %disk%
echo sel part %%c
echo del part override)>>dsk.txt
)
)
你好,大侠,能增强一下上面几行代码的功能吗? 改成类似下面的,用分区类型的ID来表示的形式,这样我如果想删除其它系统下的某分区类型的分区,就直接在后加分区类型的ID就可以了,这样功能就没强大多了
for /f "tokens=2 delims= " %%c in ('^(echo select disk %disk% ^&echo list part^)^|diskpart^|findstr /i "C12A7328-F81F-11D2-BA4B-00A0C93EC93B DE94BBA4-06D1-4D40-A16A-BFD50179D6AC E3C9E316-0B5C-4DB8-817D-F92DF00215AE 其它系统下分区类型的ID"')
★★★需要增强的原因是:
所有windows相关的分区类型,因为本身就是微软的东西, 他们都有英文名字, 像System、 Reserved、 Recovery
但是更多的其它系统,像苹果系统,linux等系统下的分区类型,却没有名字,统一显示为Unknown
但好在,每种分区类型,在分区的详情中都有一串字符ID来表示这种类型,例如:查看一个 system类型分区的详情,里面有下面的内容
Type: C12A7328-F81F-11D2-BA4B-00A0C93EC93B
Windows下的一些分区,英文类型名字和其ID的对应关系如下
system
C12A7328-F81F-11D2-BA4B-00A0C93EC93B
recovery
DE94BBA4-06D1-4D40-A16A-BFD50179D6AC
reserved
E3C9E316-0B5C-4DB8-817D-F92DF00215AE
_______________________________________________________
附获取分区类型详情的步骤:
Active code page: 437
C:\Users\Administrator>diskpart
Microsoft DiskPart version 6.1.7601
Copyright (C) 1999-2008 Microsoft Corporation.
On computer: WIN
DISKPART> sel disk 0
Disk 0 is now the selected disk.
DISKPART> list part
Partition ### Type Size Offset
------------- ---------------- ------- -------
Partition 1 System 1027 MB 1024 KB
Partition 2 Primary 80 GB 1028 MB
Partition 3 Primary 112 GB 81 GB
Partition 4 Primary 29 GB 193 GB
DISKPART> sel part 1
Partition 1 is now the selected partition.
DISKPART> detail part
Partition 1
Type : c12a7328-f81f-11d2-ba4b-00a0c93ec93b
Hidden : Yes
Required: No
Attrib : 0X8000000000000000
Offset in Bytes: 1048576
Volume ### Ltr Label Fs Type Size Status Info
---------- --- ----------- ----- ---------- ------- --------- --------
* Volume 3 EFI FAT32 Partition 1027 MB Healthy System
DISKPART> |