无忧启动论坛

 找回密码
 注册
搜索
系统gho:最纯净好用系统下载站广告联系 微信:wuyouceo QQ:184822951
查看: 6095|回复: 20
打印 上一主题 下一主题

[求助] 求助,下面这个批处理怎么改?

[复制链接]
1#
发表于 2020-7-17 22:59:43 | 显示全部楼层
我也来凑个热闹

  1. @echo off

  2. for /f "tokens=1* " %%a in ('fsutil fsinfo drives') do (
  3.     for %%c in (%%b) do (
  4.         for /f "tokens=1,2 delims=: " %%d in ('fsutil fsinfo volumeinfo %%~dc') do if "%%d"=="文件系统名" (
  5.             for /f "tokens=1,3*" %%f in ('vol %%~dc') do if "%%f"=="驱动器" echo;%%~dc %%e  %%h
  6.         )
  7.     )
  8. )
  9. echo;------------------------------------------------
  10. setlocal enabledelayedexpansion
  11. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  12.     cd %%a:>nul 2>&1
  13.     if !errorlevel!==0 for /f "tokens=1,2 delims=: " %%b in ('fsutil fsinfo volumeinfo %%a:') do if "%%b"=="文件系统名" (
  14.             for /f "tokens=1,3*" %%d in ('vol %%a:') do if "%%d"=="驱动器" echo;%%a: %%c  %%f
  15.         )
  16.     )
  17. )
  18. echo;------------------------------------------------
  19. wmic volume get driveletter,filesystem,label|find ":"
  20. pause
复制代码


还是WMIC来的简单,一句!

点评

谢谢回复 方法1 7x32 10x64 显示正常,xp 显示错误。 方法2 7x32 10x64 显示正常,xp 显示错误。 方法3 7x32 显示正常,xp 10x64 显示错误。  详情 回复 发表于 2020-7-18 14:09
回复

使用道具 举报

2#
发表于 2020-7-17 23:00:21 | 显示全部楼层
仅测试Win8.1,XP这种古董没有。
回复

使用道具 举报

3#
发表于 2020-7-18 18:02:05 | 显示全部楼层
本帖最后由 nttwqz 于 2020-7-18 18:03 编辑
807979023 发表于 2020-7-18 14:09
谢谢回复
方法1  7x32 10x64 显示正常,xp 显示错误。
方法2  7x32 10x64 显示正常,xp 显示错误。

无论那种方法,在Win10x64上面都正常。


又回想起来,最初Victor888编写的盘符整理为何要自带一个fsutil.exe了,因为这个程序有太多的坑!
xp上fsutil fsinfo volumeinfo C:\结果和Win7以后系统不同虽然看似一样,到了10这句命令又错了,又不支持最后的\了,而Win8.1带不带都正常,XP不带不正常,这该让人说什么好,个人认为XP的错了,\不该有,还是Win8.1好,都兼容,也没有那么积极的推广PowerShell,右键默认CMD不像10还要改注册表,不想学PS。

下面代码在XP、Win8.1x64、Win10x64上测试通过。
  1. @echo off
  2. setlocal enabledelayedexpansion
  3. for /f "tokens=2 delims=[" %%Q in ('ver') do for /f "tokens=2,3 delims=. " %%R in ("%%Q") do set ver=%%R%%S
  4. if %ver%==51 set "fix=\"
  5. for %%a in (C D E F G H I J K L M N O P Q R S T U V W X Y Z) do (
  6.     cd %%a:>nul 2>&1
  7.     if !errorlevel!==0 (
  8.         for /f "tokens=1,2*" %%d in ('fsutil fsinfo volumeinfo %%a:%fix%') do (
  9.             for /f "tokens=1,2*" %%i in ("%%d %%f") do (
  10.                 if "%%i"=="文件系统名" set "vara=%%j"
  11.                 if "%%i"=="卷名" set "varb=%%j"
  12.             )
  13.         )
  14.         echo %%a: !vara!   !varb!
  15.     )
  16. )
  17. echo;------------------------------------------------
  18. echo list vol|diskpart|findstr /i "卷 ---"
  19. pause
复制代码


XP上个人测试前面一堆代码还没有最后一句echo list vol|diskpart|findstr /i "卷 ---"执行速度快

评分

参与人数 1无忧币 +5 收起 理由
807979023 + 5 赞一个!

查看全部评分

回复

使用道具 举报

4#
发表于 2020-7-18 18:17:08 | 显示全部楼层
dos时代菜鸟 发表于 2020-7-18 17:40
就这几句话,xp win10 都通过了

然而,我测试的是你这XP、Win10都不行

fsutil的坑太多,我们还是建议楼主用坑少一点的diskpart吧,哈哈哈哈~

点评

可能是 有的卷 没有卷标 导致的,  详情 回复 发表于 2020-7-18 18:42
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|手机版|Archiver|捐助支持|无忧启动 ( 闽ICP备05002490号-1 )

闽公网安备 35020302032614号

GMT+8, 2024-5-6 01:21

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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