楼 主
进来看一下吧。我的代码错在哪里了??
发表于 2007-04-04 04:22 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
@echo off&setlocal enabledelayedexpansion
set tk=2
goto 1
:2
set /a tk+=1
if %tk%==6 goto 3
:1
echo %%tk%% %tk%
for /f "tokens=%tk% delims= " %%i in ('fsutil fsinfo drives') do (fsutil fsinfo drivetype %%i>>f:\t.txt&echo !tk!
)
goto 2
:3
pause
为什么显示结果会这样:
%tk% 2
2
%tk% 3
%tk% 4
%tk% 5
而且t.txt文件里也只有:C:\ - 固定驱动器
到底错在哪里??
第 2 楼
发表于 2007-04-04 05:34 · 中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
问题发现了,是从执行 fsutil fsinfo drives 后得到的串只到 C:\ 就结束了。
原因还不清楚。
C:\Documents and Settings\J>for /f "delims=" %i in ('fsutil fsinfo drives') do echo %i
C:\Documents and Settings\J>echo 驱动器: C:\
驱动器: C:\
C:\Documents and Settings\J>_
第 3 楼
发表于 2007-04-04 05:42 · 中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
@echo off&setlocal
for /f "tokens=1*" %%a in ('fsutil fsinfo drives^|more') do (
for /f %%x in ('echo/%%b,%%a') do (
fsutil fsinfo drivetype %%x
)
)
我今后在论坛的目标就是做个超级坏人!!!
第 4 楼
发表于 2007-04-04 05:43 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
请NaturalJ0及各位大侠。帮帮小弟吧。
再请9527解释一下。偶的为什么错吗??
[ Last edited by wudixin96 on 2007-4-4 at 05:49 AM ]
第 5 楼
发表于 2007-04-04 05:58 · 中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
fsutil fsinfo drives
fsutil fsinfo drives|more
你执行下这两句看有什么区别应该就明白了
第 6 楼
发表于 2007-04-04 06:00 · 中国 北京 联通
银牌会员
★★★
努力做坏人
积分 1,185
发帖 438
注册 2006-08-28 12:00
19年会员
UID 61449
来自 北京
状态 离线
是的,自己多多试验,不要总是提问,这样对你没有多大的好处!!!
我今后在论坛的目标就是做个超级坏人!!!
第 7 楼
发表于 2007-04-04 06:10 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
一个横排 一个竖排
但为什么横排就不行呢?
理论上也应该能取到的啊?
谢谢两位大侠。偶明白了。
[ Last edited by wudixin96 on 2007-4-4 at 06:13 AM ]
第 8 楼
发表于 2007-04-04 06:13 · 中国 江苏 苏州 联通
银牌会员
★★★
积分 1,181
发帖 533
注册 2006-08-14 12:54
19年会员
UID 60484
状态 离线
第 9 楼
发表于 2007-04-04 06:28 · 中国 广东 广州 电信
高级用户
★★★
潜水修练批处理
积分 788
发帖 366
注册 2006-12-31 02:43
19年会员
UID 75048
性别 男
状态 离线
fsutil fsinfo drives的输出结果很特殊,如cmd下执行后显示:
驱动器: C:\ D:\ E:\ F:\
但其实在C:\、D:\、E:\和F:\之间都使用用00这个终止符连接的,而不是平常的换行符或者空格,导致for遇到00时就停止了读取,即for只能读到:
驱动器: C:\
[ Last edited by dikex on 2007-4-3 at 05:50 PM ]
第 10 楼
发表于 2007-04-04 06:34 · 中国 浙江 杭州 电信
银牌会员
★★★
积分 1,928
发帖 931
注册 2007-01-06 11:46
19年会员
UID 75624
性别 男
状态 离线
是这样啊。偶以为中间是普通的空格分隔符呢
感谢dikex的帮助
论坛跳转: