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

[其他] [已解决]XP中for中提取fsutil命令结果,if判断for变量失效?

很疑问,我的两个虚拟机WindowsXP_SP3都无法通过命令,懂的看图应该就知道了,望大神解答
1

评分人数

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

XP系统里面把fsutil命令的执行结果重定向到a.txt
用UltraEdit之类的十六进制编辑器打开a.txt
可以看到行尾有特殊字符

TOP

回复 2# DAIC

    看不懂这种,但是发现用16进制打开后确实看到了不同,但是还是很疑问,希望大神稍详细解答下

TOP

回复 3# F_Ms


    16进制0D = 回车(\r)
16进制0A = 换行(\n)

去掉结尾多余的0D字符:
  1. for /f "tokens=2delims=- " %%a in ('fsutil fsinfo drivetype c:') do set "v=%%a"
  2. echo,[%v%]
复制代码
1

评分人数

TOP

本帖最后由 F_Ms 于 2015-3-18 13:32 编辑

回复 4# apang


    恩,最终测试赋值到变量后感觉还是有字符的样子使判断不成立,使用了!f:~0,5!直接截取前五个字符运行通过,这次长见识了,谢谢坛友

TOP

回复 5# F_Ms
  1. for /f "tokens=2delims=- " %%a in ('fsutil fsinfo drivetype c:') do (
  2.         set "v=%%a"
  3. )
  4. if "%v%" == "固定驱动器" echo,OK
  5. pause
复制代码
  1. for /f "tokens=2delims=- " %%a in ('fsutil fsinfo drivetype c:') do (
  2.         for /f %%b in ("%%a") do if "%%b" == "固定驱动器" echo,OK
  3. )
  4. pause
复制代码
其实除了fsutil,wmic也有这种情况:
C:\Windows\System32>for /f "delims=" %a in ('wmic LogicalDisk where "Name='c:'"
get Description') do echo,[%a]

] \Windows\System32>echo,[Description
]Description

] \Windows\System32>echo,[Local Fixed Disk
]Local Fixed Disk

] \Windows\System32>echo,[
]

C:\Windows\System32>

很奇怪的显示有没有?

TOP

回复 6# apang


    确实,早上写的时候还以为自己发现了个BUG呢,(因为win8.1下正常导致的误解),一层for还无法进行判断

TOP

真蛋疼

TOP

本帖最后由 tigerpower 于 2015-7-4 06:48 编辑

你发现Bug了!

TOP

回复 9# tigerpower


    这就是为什么不建议大家继续使用XP系统的原因之一啦

TOP

返回列表