![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-03 23:59 |
共 48,038 主题排行 / 350,123 发帖 / 今日 0 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » 进来看一下吧。我的代码错在哪里了?? |
| 可打印版本 665 / 9 |
| 第1楼 wudixin96 | 发表于 2007-04-04 04:22 |
| 银牌会员 发帖 931 积分 1,928 | |
|
进来看一下吧。我的代码错在哪里了?? @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楼 NaturalJ0 | 发表于 2007-04-04 05:34 |
| 银牌会员 发帖 533 积分 1,181 | |
|
问题发现了,是从执行 fsutil fsinfo drives 后得到的串只到 C:\ 就结束了。
原因还不清楚。 |
|
| 第3楼 9527 | 发表于 2007-04-04 05:42 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
| 第4楼 wudixin96 | 发表于 2007-04-04 05:43 |
| 银牌会员 发帖 931 积分 1,928 | |
|
请NaturalJ0及各位大侠。帮帮小弟吧。
再请9527解释一下。偶的为什么错吗?? [ Last edited by wudixin96 on 2007-4-4 at 05:49 AM ] |
|
| 第5楼 NaturalJ0 | 发表于 2007-04-04 05:58 |
| 银牌会员 发帖 533 积分 1,181 | |
|
fsutil fsinfo drives
fsutil fsinfo drives|more 你执行下这两句看有什么区别应该就明白了 |
|
| 第6楼 9527 | 发表于 2007-04-04 06:00 |
| 银牌会员 发帖 438 积分 1,185 来自 北京 | |
|
是的,自己多多试验,不要总是提问,这样对你没有多大的好处!!!
|
|
| 第7楼 wudixin96 | 发表于 2007-04-04 06:10 |
| 银牌会员 发帖 931 积分 1,928 | |
|
一个横排 一个竖排
但为什么横排就不行呢? 理论上也应该能取到的啊? 谢谢两位大侠。偶明白了。 [ Last edited by wudixin96 on 2007-4-4 at 06:13 AM ] |
|
| 第8楼 NaturalJ0 | 发表于 2007-04-04 06:13 |
| 银牌会员 发帖 533 积分 1,181 | |
|
因为这个横排特殊,和一般的不同。
|
|
| 第9楼 dikex | 发表于 2007-04-04 06:28 |
| 高级用户 发帖 366 积分 788 | |
|
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楼 wudixin96 | 发表于 2007-04-04 06:34 |
| 银牌会员 发帖 931 积分 1,928 | |
|
是这样啊。偶以为中间是普通的空格分隔符呢
感谢dikex的帮助 |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |