1198398 发表于 2019-9-19 19:57:53

求一个获取 移动盘符的批处理

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:19

@echo off
for /f "tokens=2 delims==" %%i in ('"wmic LogicalDisk where DriveType=2 get DeviceID /value 2>nul"') do echo U盘盘符 %%i
for /f "tokens=2 delims==" %%a in ('"wmic DiskDrive where MediaType="External hard disk media" get Index /value 2>nul"') do (
    for /f "tokens=7 delims== " %%i in ('wmic path Win32_LogicalDiskToPartition^|findstr /c:"Disk #%%a"') do (
      echo 移动硬盘盘符 %%~i
    )
)
pause>nul

1198398 发表于 2019-9-19 21:25:33

多谢牛帅!!!!!!{:1_194:}

nttwqz 发表于 2019-9-19 21:35:20

建议楼主说明获取移动储存设备盘符的目的,是不是有更加简单的逻辑来实现,是否真的必需获取硬盘硬盘的盘符才能达到最终目的?这样大家也能更好的帮你解决问题。

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

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

最后,希望楼主能自己捕鱼,而不是让大家直接送给你一条现成的鱼,就像bathome一样。

1198398 发表于 2019-9-19 23:38:31

本帖最后由 1198398 于 2019-9-20 08:11 编辑

已解决!!!谢谢大佬的帮助

zhoubin 发表于 2019-9-20 08:48:51

1198398 发表于 2019-9-19 23:38
已解决!!!谢谢大佬的帮助

怎么解决的,这个批处理,pe下能用吗,谢谢您!!
页: [1]
查看完整版本: 求一个获取 移动盘符的批处理