返回列表 发帖

[系统相关] [已解决]批处理怎样获取C盘所在硬盘的分区类型?

本帖最后由 小白龙 于 2023-8-31 09:26 编辑

我想获取C盘所在硬盘的分区类型, 下面文章有用diskpart和powershell的命令
https://www.51cto.com/article/655573.html?pc

但我感觉wmic命令更通用一些, 而且在win7下并不能使用powershell那个命令, 使用diskpart似乎也麻烦

我尝试命令 wmic diskdrive 没有找到分区类型相关的信息
1

评分人数

    • Batcher: 感谢给帖子标题标注[已解决]字样PB + 2

下面是一言的回答, 报错
@echo off  
set disk=  
set /p disk=请输入磁盘的设备ID(例如:0):  
set partitions=  
for /f "tokens=1" %%a in ('wmic diskdrive where deviceid="%disk%" get deviceid') do (  
    set partitions=%%a  
)  
if defined partitions (  
    for /f "tokens=1" %%a in ('wmic partition where deviceid="%partitions%" get deviceid') do (  
        set volumes=%%a  
    )  
    for /f "tokens=2 delims=," %%b in ('vol %volumes%') do (  
        set drive_type=%%b  
    )  
    if /i "%drive_type%"=="MBR" (  
        echo The partition form of the disk is: MBR  
    ) else (  
        echo The partition form of the disk is: GPT  
    )  
) else (  
    echo Cannot find the specified disk.  
)
pauseCOPY

TOP

回复 3# Batcher


    多谢大佬,

如果不是C盘, 是任一盘符呢? 可能是在磁盘3或磁盘5

TOP

回复 5# Batcher


    没有找到盘符信息

TOP

本帖最后由 小白龙 于 2023-8-31 14:50 编辑

回复 5# Batcher

下面这个命令的输出有盘符了, 但是没有类型了, 完美错过, 哎
    wmic logicaldisk get * /value

难道用wmic命令对于我的问题无解吗?
问题是: 判断某个特定的盘符的所在的分区的类型

TOP

回复 8# Five66


    怎么改, 改了不行,

TOP

回复 9# Batcher


  多谢大佬,
本想着一行命令就好了, 感觉复杂多了, 一时不好消化

TOP

回复 9# Batcher

感觉是不是可以不用判断硬盘的id了, 因为分区的类型前面如果有gpt, 整个硬盘就是gpt, 总感觉有可能一行代码搞定

TOP

回复 12# Five66


    还真是, 一行代码就搞定了, 感谢!

TOP

回复 12# Five66

输出后是  Type=GPT: Basic Data  怎样只输出 GPT: Basic Data 呢, 我尝试在前面加 /value 但是报错

TOP

回复 16# Five66


    gpt+mbr混合分区, 只在老苹果下有用到, 基本上很少了, 现在都是GPT了

TOP

返回列表