Board logo

标题: [系统相关] 批处理怎样得到第一块硬盘的最后分区盘符? [打印本页]

作者: ttj36    时间: 2008-8-8 13:10     标题: 批处理怎样得到第一块硬盘的最后分区盘符?

是不是很难实现,能不能用批处得到
作者: pusofalse    时间: 2008-8-8 14:25

  1. @echo off
  2. for /f "delims=驱动器:\" %%a in ('fsutil fsinfo drives^|more') do @fsutil fsinfo drivetype %%a:\|findstr "固定驱动器">nul&&set finaldrive=%%a:\
  3. echo %finaldrive%
复制代码
只是一个磁盘的情况。wmic应该能获取有多少磁盘,但不熟悉。
作者: ttj36    时间: 2008-8-8 15:37

不行了,版主,这个获得的是全部硬盘,不是第一块硬盘,
我主要是来分移动硬盘用的,上面这P处,获得的的我移动硬盘,
作者: pusofalse    时间: 2008-8-8 16:40

不是矛盾的的吗。第一块硬盘和第一个硬盘分区概念不同。
我上面的代码获取的是固定磁盘的最后一个分区,而不是全部硬盘。

区分移动硬盘,用下面代码。
for /f "skip=1" %%a in ('wmic logicaldisk where "drivetype='3'" get deviceid') do echo 固定磁盘是%%a
drivetype=3
其中3是固定磁盘,5是光驱,移动硬盘是忘记是什么了,试下1或2或4.
作者: ttj36    时间: 2008-8-8 17:20

我的移动硬盘插上后,显示在 固定磁盘区里的,也可以这么我我有2个固定磁盘想得到,第一个固定磁盘的最后分区

[ 本帖最后由 ttj36 于 2008-8-8 17:22 编辑 ]
作者: Batcher    时间: 2008-8-9 01:43

DriveType 2 ,可移动磁盘
3 ,本地固定磁盘
5 ,CD-ROM
作者: fastslz    时间: 2008-8-9 13:40

如果是USB移动硬盘的话也是DriveType 3(本地固定磁盘),这个情况下无法正确获取最后分区盘符。
作者: fastslz    时间: 2008-8-9 15:09

  1. @echo off
  2. for /f "tokens=3 delims==" %%i in ('Wmic Path Win32_LogicalDiskToPartition^|find /i "Disk #0"') do call :xxx %%i
  3. echo.
  4. echo 第一块硬盘第一个分区是%A%
  5. echo 第一块硬盘最后一个分区是%B%
  6. pause&exit
  7. :xxx
  8. echo %~1
  9. if not defined A set A=%~1
  10. set B=%~1
复制代码





欢迎光临 批处理之家 (http://bathome.net./) Powered by Discuz! 7.2