找回密码
 注册
搜索
[新手上路]批处理新手入门导读[视频教程]批处理基础视频教程[视频教程]VBS基础视频教程[批处理精品]批处理版照片整理器
[批处理精品]纯批处理备份&还原驱动[批处理精品]CMD命令50条不能说的秘密[在线下载]第三方命令行工具[在线帮助]VBScript / JScript 在线参考
查看: 23446|回复: 3

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

[复制链接]
发表于 2013-4-10 23:08:59 | 显示全部楼层 |阅读模式

  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下执行是没有任何问题的,所以特向各位老师求教。
不胜感激

评分

参与人数 1PB +2 收起 理由
Batcher + 2 感谢给帖子标题标注[已解决]字样

查看全部评分

 楼主| 发表于 2013-4-10 23:36:34 | 显示全部楼层
补充一下,似乎找到了原因,在xp下,'fsutil fsinfo drives^|more'是可以分行显示盘符的,如下:
驱动器: C:\
D:\
E:\
F:\
G:\

但在win7下,more起不到分行的作用,导致“驱动器: C:\ D:\ E:\ F:\ J:\ O:\”显示在一行,所以没办法取到后面的盘符了。。。不知道哪位大拿有办法解决这个问题。
发表于 2013-4-11 09:06:55 | 显示全部楼层
用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技术 +1 收起 理由
Batcher + 1 乐于助人

查看全部评分

 楼主| 发表于 2013-4-11 11:13:34 | 显示全部楼层
搞定,apang老师厉害!!!!!!五体投地,万分感激。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

Archiver|手机版|小黑屋|批处理之家 ( 渝ICP备10000708号 )

GMT+8, 2026-3-20 05:51 , Processed in 0.025303 second(s), 13 queries , File On.

Powered by Discuz! X3.5

© 2001-2026 Discuz! Team.

快速回复 返回顶部 返回列表