无忧启动论坛

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

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

[复制链接]
跳转到指定楼层
1#
发表于 2020-7-15 21:38:09 | 显示全部楼层 |只看大图 回帖奖励 |倒序浏览 |阅读模式
求助,下面这个批处理怎么改?

1. 盘符,卷名,文件系统名,显示在同1行。
2. 不显示标题 "卷名,文件系统名" 效果如下:

c: os NTFS
d: 程序 FAT32
e: bak NTFS
...
  1. @echo off&color 1f
  2. 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 (
  3.   if exist %%a: (
  4.      echo %%a:
  5.      fsutil fsinfo volumeinfo %%a:\|find "卷名"
  6.      fsutil fsinfo volumeinfo %%a:\|find "文件系统名"
  7.   )
  8. )
  9. echo.&echo 按任意键退出...&pause >nul
复制代码



2#
 楼主| 发表于 2020-7-16 10:31:01 | 显示全部楼层
谢谢指点,在win10和win7中运行成功,在xp中显示不正常。

win7.jpg (38.01 KB, 下载次数: 71)

win7.jpg

winxp.jpg (39.23 KB, 下载次数: 62)

winxp.jpg

点评

虽然 4F foxfirefox 大牛给出了修改, 但我还是不解, 同样的批处理, 理论上应会得到相同的结果. 好奇心研究了一下原因为何 ? 发现了是 MS 真是太牛逼了, 在 Windows XP 会多显示一个 0xD 字符, 而 0xD 字符  详情 回复 发表于 2020-7-17 02:53
回复

使用道具 举报

3#
 楼主| 发表于 2020-7-17 11:30:39 | 显示全部楼层
plusv 发表于 2020-7-17 02:53
虽然 4F foxfirefox 大牛给出了修改,
但我还是不解,
同样的批处理,

学习知识了!去掉一个字符后win7显示又不正常了。
为了少点代码,改成以下内容。

@echo off&color 1f&setlocal EnableDelayedExpansion
for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b
set b=%b:* =%
set b=%b:~0,3%
set c=%b:~0,2%
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 (
  if exist %%a: (
    FOR /F "tokens=3 delims= " %%i in ('fsutil fsinfo volumeinfo %%a:\^|find "卷名"') do set MyVol=%%i
    FOR /F "tokens=3 delims= " %%i in ('fsutil fsinfo volumeinfo %%a:\^|find "文件系统名"') do set MyFS=%%i
    if "%c%" == "5." (
      echo.          !MyFS! %%a: !MyVol!
    ) else (
      echo %%a: !MyVol! !MyFS!
    )
  )
)
echo.&echo 按任意键退出...&pause >nul


回复

使用道具 举报

4#
 楼主| 发表于 2020-7-17 12:43:33 | 显示全部楼层
本帖最后由 807979023 于 2020-7-18 14:04 编辑
foxfirefox 发表于 2020-7-17 11:48
请将 %%a:\ 后面的\删除 (WIN10 X64 测试)
@echo off&color 1f&setlocal EnableDelayedExpansion
for /f ...

谢谢,已去掉%%a:\ 后面的\
xp  win7x32  win10x64 都显示正常。

补充: 还是加上了%%a:后面的\ ,  xp  win7x32  win10x64 都显示正常。
如果去掉这个\ ,xp中,本批处理所在分区卷标显示不正常。
回复

使用道具 举报

5#
 楼主| 发表于 2020-7-17 19:22:42 | 显示全部楼层
dos时代菜鸟 发表于 2020-7-17 16:23
三个 for 循环 外加两个 if  可否搞定?
不用 find 也不用 设置  C d e f g 。。。。 矩阵式排查。也不用 ...

谢谢,代码很简洁,10和7显示正常,xp不行。

点评

没有 xp 环境,不知差哪  详情 回复 发表于 2020-7-17 22:45
回复

使用道具 举报

6#
 楼主| 发表于 2020-7-18 14:07:37 | 显示全部楼层
dos时代菜鸟 发表于 2020-7-18 09:51
对于 输出行结尾 带回车字符的情况,用 for/f  +echo字符串,的方式二次获取之,估计能解决。

xp下运行结果

xp.jpg (34.69 KB, 下载次数: 63)

xp.jpg
回复

使用道具 举报

7#
 楼主| 发表于 2020-7-18 14:09:13 | 显示全部楼层
nttwqz 发表于 2020-7-17 22:59
我也来凑个热闹

谢谢回复
方法1  7x32 10x64 显示正常,xp 显示错误。
方法2  7x32 10x64 显示正常,xp 显示错误。
方法3  7x32 显示正常,xp 10x64 显示错误。


点评

无论那种方法,在Win10x64上面都正常。 [attachimg]461690[/attachimg] 又回想起来,最初Victor888编写的盘符整理为何要自带一个fsutil.exe了,因为这个程序有太多的坑! xp上fsutil fsinfo volumeinfo C:\结果  详情 回复 发表于 2020-7-18 18:02
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 06:37

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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