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

[文本处理] [已解决]查看驱动器的批处理中的for语句怎样理解?

  1. ::查看驱动器
  2. @echo
  3. setlocal enabledelayedexpansion
  4. for /f "skip=1 tokens=1,2 delims=\" %%a in ('fsutil fsinfo drives^|find /v""') do (
  5. set aa=%%a
  6. set aa=!aa:~-2!
  7. For %%i in (!aa!) do fsutil fsinfo drivetype %%i
  8. )
  9. pause
复制代码
我不懂的语句是('fsutil fsinfo drives^|find /v""'),解释清楚一点,谢谢!

[ 本帖最后由 vincentzhou 于 2010-12-22 16:13 编辑 ]
1

评分人数

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

原帖由 vincentzhou 于 2010-12-14 22:54 发表 ::查看驱动器
@echo
retlocal enabledelayedexpansion
for /f "skip=1 tokens=1,2 delims=" %%a in ('fsutil fsinfo drives^|find /v""') do (
set aa=%%a
set aa=!aa:~-2!
For %%i in (!aa!) do fsutil fsinfo drivetype %%i
)
pause
我不懂的语句是('fsutil fsinfo drives^|find /v""'),解释清楚一点,谢谢!

楼主给的代码错误,应该这样:
  1. @echo off&setlocal enabledelayedexpansion
  2. for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do (
  3.         set aa=%%a
  4.         for %%b in (!aa:~-3^,2!) do fsutil fsinfo drivetype %%b
  5. )
  6. pause
复制代码
fsutil fsinfo drives:列出计算机中所有的驱动器。例如输出内容:驱动器: C:\ D:\ E:\ F:\ G:\ H:\ I:\ J:\ K:\ R:\
find /v "" 进行查询,这里主要利用其处理 fsutil fsinfo drives 输出的文件,“驱动器:”和“C:\”之间是空格(0x20)。
盘符之间不是空格,而是空字符(0x00),被 find /v "" 处理时换行。
如果要查询硬盘各个分区及其类型,可以直接:
  1. wmic logicaldisk where DriveType=3 get DeviceID,Description
复制代码

如果要查询硬盘各个分区,可以直接:
  1. wmic logicaldisk where DriveType=3 get DeviceID
复制代码

[ 本帖最后由 hanyeguxing 于 2010-12-14 23:26 编辑 ]
1

评分人数

    • vincentzhou: 感谢给帖子标题标注[已解决]字样技术 + 1
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

回复 2楼 的帖子

我给的代码错误是由于输入造成的现在已经改正。效果和前辈给的代码是一样的,那个^|前面的^是转移字符吗?
only the strong survive!

TOP

1,for /f "delims=" %%a in ('fsutil fsinfo drives^|find /v ""') do
如果不加^转义符,预处理时,会把这句以此分隔:for /f "delims=" %%a in ('fsutil fsinfo drives 和find /v ""') do
2,for %%b in (!aa:~-3^,2!) do fsutil fsinfo drivetype %%b
此句中不加^,也会把变量!aa:~-3,2!拆分成两部分!aa:~-3和,2!两部分。
寒夜孤星:在没有说明的情况下,本人所有代码均运行在 XP SP3 下 (有问题请发贴,QQ临时会话已关闭)

TOP

返回列表