无忧启动论坛

标题: 求一个获取 移动盘符的批处理 [打印本页]

作者: 1198398    时间: 2019-9-19 19:57
标题: 求一个获取 移动盘符的批处理
for /f "tokens=2 delims==" %%a in ('wmic LogicalDisk where "DriveType='2'" get DeviceID /value') do (
    set DriveU=%%a\USB_DISK\
)
echo. 移动磁盘  %DriveU%

上面这个可以获取U盘盘符!但现在的固态u盘,硬盘盒子,都无效。
如果bat不能实现,用搜索所有盘根目录下USB_DISK,不要全盘搜索,太慢!最好能叠加上面的脚本!
谢谢大老了,我是菜鸟。
作者: 窄口牛    时间: 2019-9-19 21:13
  1. @echo off
  2. for /f "tokens=2 delims==" %%i in ('"wmic LogicalDisk where DriveType=2 get DeviceID /value 2>nul"') do echo U盘盘符 %%i
  3. for /f "tokens=2 delims==" %%a in ('"wmic DiskDrive where MediaType="External hard disk media" get Index /value 2>nul"') do (
  4.     for /f "tokens=7 delims== " %%i in ('wmic path Win32_LogicalDiskToPartition^|findstr /c:"Disk #%%a"') do (
  5.         echo 移动硬盘盘符 %%~i
  6.     )
  7. )
  8. pause>nul
复制代码

作者: 1198398    时间: 2019-9-19 21:25
多谢牛帅!!!!!!
作者: nttwqz    时间: 2019-9-19 21:35
建议楼主说明获取移动储存设备盘符的目的,是不是有更加简单的逻辑来实现,是否真的必需获取硬盘硬盘的盘符才能达到最终目的?这样大家也能更好的帮你解决问题。

移动磁盘不比U盘,连fsutil也无能为力,虽然wmic partition能识别,但是不能显示盘符,设备名称倒是可以显示,还要借助diskpart才能确认盘符。

虽然,我也写了个查到活动及ESP分区,利用脚本现成的变量修改一下的确能做到楼主说的,但是毕竟初始化较慢,如果在遇上移动硬盘休眠启动时间,可能5秒以上才能显示结果,即使快了至少也得2~3秒,效率实在太低。关键是,近期我也没精力和心情给你修改。

最后,希望楼主能自己捕鱼,而不是让大家直接送给你一条现成的鱼,就像bathome一样。
作者: 1198398    时间: 2019-9-19 23:38
本帖最后由 1198398 于 2019-9-20 08:11 编辑

已解决!!!谢谢大佬的帮助
作者: zhoubin    时间: 2019-9-20 08:48
1198398 发表于 2019-9-19 23:38
已解决!!!谢谢大佬的帮助

怎么解决的,这个批处理,pe下能用吗,谢谢您!!




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