无忧启动论坛

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

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

[复制链接]
1#
发表于 2020-7-17 16:23:21 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-17 16:32 编辑

三个 for 循环 外加两个 if  可否搞定?
不用 find 也不用 设置  C d e f g 。。。。 矩阵式排查。也不用 判断 系统版本。
只在 win10 下测试了。算是 能用吧。



  1. @echo off
  2. setlocal ENABLEDELAYEDEXPANSION
  3. for /f "tokens=1*" %%c in ('fsutil fsinfo drives') do (
  4.         for %%e in (%%d) do (
  5.                 set drv_info=%%~de
  6.                 for /f "tokens=1,2 delims=: " %%f in ('fsutil fsinfo volumeinfo %%~de') do (
  7.                         if %%f==卷名 (set drv_info=!drv_info! %%g)
  8.                         if %%f==文件系统名 (set drv_info=!drv_info! %%g)
  9.                 )
  10.                 echo !drv_info!
  11.         )
  12. )
  13. pause
复制代码

点评

谢谢,代码很简洁,10和7显示正常,xp不行。  详情 回复 发表于 2020-7-17 19:22
回复

使用道具 举报

2#
发表于 2020-7-17 22:45:57 来自手机 | 显示全部楼层
807979023 发表于 2020-7-17 19:22
谢谢,代码很简洁,10和7显示正常,xp不行。

没有 xp 环境,不知差哪
回复

使用道具 举报

3#
发表于 2020-7-18 09:51:45 来自手机 | 显示全部楼层
对于 输出行结尾 带回车字符的情况,用 for/f  +echo字符串,的方式二次获取之,估计能解决。

点评

xp下运行结果  详情 回复 发表于 2020-7-18 14:07
回复

使用道具 举报

4#
发表于 2020-7-18 17:40:37 | 显示全部楼层
  1.     @echo off
  2.     setlocal ENABLEDELAYEDEXPANSION
  3.     for %%e 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 (
  4.     if exist %%e: (
  5.             SET DRV_INFO=
  6.             for /f "tokens=1,2 delims=: " %%f in ('fsutil fsinfo volumeinfo %%e:\') do (
  7.                   if %%f==卷名 ( for /f  %%h in ('echo %%g') do ( set drv_info=%%e: !drv_info! %%h))
  8.                   if %%f==文件系统名 (for /f  %%h in ('echo %%g') do (ECHO !drv_info! %%h))
  9.             )
  10.     )
  11.     )
  12.     pause
复制代码
就这几句话,xp win10 都通过了



点评

然而,我测试的是你这XP、Win10都不行 fsutil的坑太多,我们还是建议楼主用坑少一点的diskpart吧,哈哈哈哈~ [attachimg]461706[/attachimg]  详情 回复 发表于 2020-7-18 18:17
回复

使用道具 举报

5#
发表于 2020-7-18 18:42:50 | 显示全部楼层
nttwqz 发表于 2020-7-18 18:17
然而,我测试的是你这XP、Win10都不行

fsutil的坑太多,我们还是建议楼主用坑少一点的diskpa ...

可能是 有的卷 没有卷标 导致的,
回复

使用道具 举报

6#
发表于 2020-7-18 18:48:56 | 显示全部楼层
本帖最后由 dos时代菜鸟 于 2020-7-18 20:37 编辑
  1.     @echo off
  2.     setlocal ENABLEDELAYEDEXPANSION
  3.     for %%e 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 (
  4.     if exist %%e: (
  5.              SET DRV_INFO=
  6.                      for /f "tokens=1,2 delims=: " %%f in ('fsutil fsinfo volumeinfo %%e:\') do (
  7.                             if %%f==卷名 ( for /f "delims=" %%h in ('echo %%e: %%g') do (
  8.                               set drv_info=%%h____________
  9.                               set drv_info=!drv_info:~0,15!
  10.                             ))
  11.                             if %%f==文件系统名 (for /f  %%h in ('echo %%g') do (ECHO !drv_info! %%h))
  12.                     )
  13.     )
  14.                     
  15.     )
  16.     pause
复制代码
这回 XP  win10 都应该可以了。


评分

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

查看全部评分

回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-5 21:33

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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