无忧启动论坛

标题: 有办法用cmd批处理输入盘符后获取该分区所在硬盘的所有分区盘符么? [打印本页]

作者: yiyu2012    时间: 2023-6-30 20:07
标题: 有办法用cmd批处理输入盘符后获取该分区所在硬盘的所有分区盘符么?
本帖最后由 yiyu2012 于 2023-7-2 03:58 编辑

有办法用cmd批处理输入盘符后获取该分区所在硬盘的所有分区盘符么?
作者: chishingchan    时间: 2023-6-30 20:12
估计需要用到 WMIC
作者: liuzhaoyzz    时间: 2023-6-30 20:29
5大的chkmbrpbr可以啊,我发的有帖子。
作者: conlin888    时间: 2023-6-30 20:32
本帖最后由 conlin888 于 2023-7-1 09:01 编辑

使用万能的PECMD:
set pf=C:

for /f "delims=" %%i in ('call pecmd.exe "Team/ part list drv %pf%,&pf/mstr * &pf=<-1>&pf/fdrv v=*:/forx * %%v%%,v,team part list drv %%v%%,v1|ifex '%%v1%%'='',!team@ mstr * v1=<-1>v1@ifex '%%v1%%'='%%&pf%%',set &u=%%&u%% %%v%%/mstr * &u=-1,-1,&u/writ *fv -,,&u"') do @echo %%i
pause

作者: caocaofff    时间: 2023-6-30 20:33
本帖最后由 caocaofff 于 2023-6-30 20:34 编辑

以下是chatGPT的回答:

是的,可以使用cmd批处理来获取指定分区所在硬盘的所有分区盘符。以下是一个示例的批处理脚本:

  1. @echo off
  2. setlocal enabledelayedexpansion

  3. set "drive=%~1"
  4. set "drive=!drive:~0,1!"

  5. for /f "skip=1 tokens=2 delims= " %%i in ('wmic logicaldisk where "drivetype=3" get deviceid^,volumename ^| findstr /i /r /c:"!drive![0-9]"') do (
  6.     echo %%i
  7. )

  8. endlocal
复制代码



将上述代码保存为一个批处理文件(例如get_partitions.bat),然后在命令提示符中运行以下命令:

get_partitions.bat C:

其中,C:是要查询的分区盘符。脚本将输出指定分区所在硬盘的所有分区盘符。
请注意,此脚本使用了WMIC命令来获取逻辑磁盘信息,并使用了正则表达式来筛选出指定分区所在硬盘的所有分区盘符。




作者: 610644034    时间: 2023-6-30 20:51
本帖最后由 610644034 于 2023-6-30 20:58 编辑

有什么不可以的!

捕获.PNG (99.71 KB, 下载次数: 96)

捕获.PNG

作者: batche    时间: 2023-6-30 22:28
  1. @echo off
  2. set "letter=c"
  3. for /f tokens^=3delims^=^"#^, %%i in ('wmic path Win32_LogicalDiskToPartition get Dependent^,Antecedent ^| findstr /ic:"DeviceID=\"%letter%:\""') do for /f tokens^=4delims^=^" %%i in ('wmic path Win32_LogicalDiskToPartition get Dependent^,Antecedent ^| find /i "Disk #%%i"') do echo,%%i
  4. pause
复制代码

作者: yiyu2012    时间: 2023-7-1 03:08
batche 发表于 2023-6-30 22:28

测试可行,感谢!
作者: yiyu2012    时间: 2023-7-1 03:12
本帖最后由 yiyu2012 于 2023-7-1 08:21 编辑
caocaofff 发表于 2023-6-30 20:33
以下是chatGPT的回答:

感谢。测试不可行。ChatGPT只是一个会网上找资料并总结方法的语言模型,并不会亲自运行脚本,甚至会找错资料和胡编乱造。


作者: yiyu2012    时间: 2023-7-1 03:13
conlin888 发表于 2023-6-30 20:32
使用万能的PECMD:
set pf=C:

感谢。
作者: dos时代菜鸟    时间: 2023-7-1 10:47
本帖最后由 dos时代菜鸟 于 2023-7-1 22:38 编辑

diskpart 实现之。




找出兄弟盘符.7z (702 Bytes, 下载次数: 7)

作者: 土著007    时间: 2023-7-1 13:21
可以存一块钱进银行然后获取银行所有的钱吗
作者: nttwqz    时间: 2023-7-1 18:15
不借助第三方工具的情况下,wmic/diskpart/ps都可以做到,这个楼上几位已经回复过了。

若需要获得这个磁盘所有分区的更详细信息并利用相关变量做判断, 可以调用dpinfo来实现

简单来说,注释掉dpinfo中的启用变量延迟一行,改为在主脚本中启用,并确保利用变量之前没有endlocal,变量名没有冲突,否则dpinfo中的变量将无效,详见注释部分。
搜索脚本定制,删除中间所有内容,改为exit /b
  1. ::调用方法:
  2. call dpinfo.bat路径 >nul 2>nul
复制代码


附件是修改好的,仅供参考。

demo.7z

16.28 KB, 下载次数: 5, 下载积分: 无忧币 -2


作者: yiyu2012    时间: 2023-7-2 03:58
nttwqz 发表于 2023-7-1 18:15
不借助第三方工具的情况下,wmic/diskpart/ps都可以做到,这个楼上几位已经回复过了。

若需要获得这个磁 ...

感谢!
作者: yiyu2012    时间: 2023-7-2 03:59
dos时代菜鸟 发表于 2023-7-1 10:47
diskpart 实现之。

感谢!
作者: yyz2191958    时间: 2023-7-7 21:23
谢谢了




欢迎光临 无忧启动论坛 (http://bbs.wuyou.net/) Powered by Discuz! X3.3