无忧启动论坛

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

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

[复制链接]
1#
发表于 2020-7-15 23:10:27 | 显示全部楼层
@echo off&color 1f&setlocal EnableDelayedExpansion
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
     echo %%a: !MyVol! !MyFS!
  )
)
echo.&echo 按任意鍵結束...&pause >nul



评分

参与人数 2无忧币 +8 收起 理由
807979023 + 5 赞一个!
holley2008 + 3 赞一个!

查看全部评分

回复

使用道具 举报

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

虽然 4F foxfirefox 大牛给出了修改,
但我还是不解,
同样的批处理,
理论上应会得到相同的结果.

好奇心研究了一下原因为何 ?
发现了是 MS 真是太牛逼了,
在 Windows XP 会多显示一个 0xD 字符,
而 0xD 字符可是 RETURN,
导致发生奇怪的结果,
MS 你累了吗 ?

所以改法就是,
把它的结果去掉一个字符.
set MyVol=!MyVol:~0,-1!

@echo off&color 1f&setlocal EnableDelayedExpansion
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&set MyVol=!MyVol:~0,-1!
     FOR /F "tokens=3 delims= " %%i in ('fsutil fsinfo volumeinfo %%a:\^|find "档案系统名"') do set MyFS=%%i&set MyFS=!MyFS:~0,-1!
     echo %%a: !MyVol! !MyFS!
  )
)
echo.&echo 按任意键结束...&pause >nul



点评

学习知识了!去掉一个字符后win7显示又不正常了。 为了少点代码,改成以下内容。 @echo off&color 1f&setlocal EnableDelayedExpansion for /f "tokens=1* delims=[" %%a in ('ver') do set b=%%b set b=%b:*  详情 回复 发表于 2020-7-17 11:30
回复

使用道具 举报

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

本版积分规则

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

闽公网安备 35020302032614号

GMT+8, 2024-5-3 11:42

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

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