[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
返回列表 发帖

[系统相关] [已解决]win7下fsutil fsinfo drives|more命令无法分行显示盘符?

  1. @echo off
  2. SetLocal EnableDelayedExpansion
  3. REM 该段脚本为了取得移动设备盘符
  4. FOR /f "delims=驱动器:\ " %%b in ('fsutil fsinfo drives^|more') do (
  5. echo %%b
  6. )
  7. pause
复制代码
本地执行'fsutil fsinfo drives|more'命令串后,得到的结果如下:驱动器: C:\ D:\ E:\ F:\ J:\ O:\
那么,for 以后,echo应该枚举出6个盘符,可实际执行的结果却只取了C盘结果集,也就是只执行了一次,不知道是不是我"delims=驱动器:\ "这个写的有问题,但同样的代码在xp下执行是没有任何问题的,所以特向各位老师求教。
不胜感激
1

评分人数

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

搞定,apang老师厉害!!!!!!五体投地,万分感激。

TOP

用wmic就好
  1. @echo off
  2. for /f "delims=" %%a in ('wmic logicaldisk get name^|find ":"') do (
  3.    echo,%%~da
  4. )
  5. pause
复制代码
非要用fsutil的话,貌似这样可以:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('fsutil fsinfo drives^|more') do (
  3.    set drv=%%a
  4.    for %%b in (!drv:驱动器:^=!) do echo,%%~db
  5. )
  6. pause
复制代码
1

评分人数

TOP

补充一下,似乎找到了原因,在xp下,'fsutil fsinfo drives^|more'是可以分行显示盘符的,如下:
驱动器: C:\
D:\
E:\
F:\
G:\

但在win7下,more起不到分行的作用,导致“驱动器: C:\ D:\ E:\ F:\ J:\ O:\”显示在一行,所以没办法取到后面的盘符了。。。不知道哪位大拿有办法解决这个问题。

TOP

返回列表