![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-11 23:44 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » fsutil fsinfo drives(已解决) |
| 可打印版本 2,970 / 18 |
| 第1楼 Eblis | 发表于 2007-01-13 09:39 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
fsutil fsinfo drives(已解决) fsutil fsinfo drives >drives.txt
for /f "skip=1 tokens=1 delims=:" %%i in (drives.txt) do set drivers=%%i 这2行有什么错误?为什么不能set drivers? [ Last edited by Eblis on 2007-1-13 at 11:16 PM ] |
|
| 第2楼 Eblis | 发表于 2007-01-13 10:31 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
我昏...帮帮忙啊``
|
|
| 第3楼 Eblis | 发表于 2007-01-13 10:44 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
还想问个问题..find 不可以搜索2个字符串吗??
比如find /i "1.txt" "2.txt" 3.txt 搜索3.txt文件里的1.txt 和2.txt 2个字符串.. |
|
| 第4楼 Eblis | 发表于 2007-01-13 10:52 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
3楼问题找到答案了...用findstr命令可以...帮忙回答1楼的..
|
|
| 第5楼 Eblis | 发表于 2007-01-13 11:31 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
各位兄弟帮帮忙撒``
|
|
| 第6楼 Eblis | 发表于 2007-01-13 11:53 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
fsutil fsinfo drives >drives.txt
for /f "skip=1 tokens=1* delims=:" %%I in (drives.txt) do @set drives=%%I %%j 我只是想把drives.txt里面的:驱动器: C:\ D:\ E:\ F:\ G:\ H:\ set drives=c d e f g h |
|
| 第7楼 dikex | 发表于 2007-01-13 14:01 |
| 高级用户 发帖 366 积分 788 | |
|
发现fsutil fsinfo drives >drives.txt生成的drives.txt里面虽然有内容,但其ascii码居然有很多00!a.txt的内容是从drives.txt里面复制过去的(查看大小同样为32字节),但看看FC /b比较的结果
下面的代码也出问题了…… for /f "skip=1 tokens=2-6 delims=:\" %i in ('fsutil fsinfo drives') do echo %i %j %k %l %m %n 这个只有%i显示成功,但将'fsutil fsinfo drives'换为上面那个a.txt时则成功了…… 看来是fsutil fsinfo drives的输出有问题了…… 这次运行fc drives.txt a.txt得到结果
但用for /f %i in (a.txt) do echo %i 却只能显示“驱动器:” [ Last edited by dikex on 2007-1-13 at 02:56 PM ] |
|
| 第8楼 Eblis | 发表于 2007-01-13 16:31 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
不知道上面的兄弟是怎么复制的..我这里比较却是没有异处
G:\DOS\BAT>fc /b drives.txt 1.txt 正在比较文件 drives.txt 和 1.TXT FC: 找不到相异处 G:\DOS\BAT>fc /b drives.txt 2.txt 正在比较文件 drives.txt 和 2.TXT FC: 找不到相异处 1.txt是文件内容复制的..2.txt是copy drives.txt的..都没有不同的.. |
|
| 第9楼 Eblis | 发表于 2007-01-13 17:12 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
for /f "skip=1 tokens=2-10 delims=:\ " %%a in (2.txt) do @set drives=%%a %%b %%c %%d %%e %%f %%g %%h %%i %%j
为什么这句之后会显示 set drives=c d e f g h %j |
|
| 第10楼 Eblis | 发表于 2007-01-13 17:38 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
实在想不通了..各位高手..
不会是要用到..你们说的变量延时吧????我快郁闷死了..我先用 fsutil fsinfo drives >1.txt 然后type 1.txt >2.txt 再执行for 语句还是不能成功... |
|
| 第11楼 Eblis | 发表于 2007-01-13 18:08 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
***** drives.txt
驱动器: C:\ D:\ E:\ F:\ G:\ 我有点明白了为什么只显示一个C了..虽然我们fsutil fsinfo drives输出到文本之后看到是一行..而实际上是换行显示的..所以for 只能显示一条的字符串.... |
|
| 第12楼 Eblis | 发表于 2007-01-13 22:19 |
| 中级用户 发帖 108 积分 251 来自 湖南==>广州 | |
|
测试完成..是没有办法显示的..ASCII码显示前2行是回车..不清楚了...希望高手能解答一下为什么会这样显示...
|
|
| 第13楼 zh159 | 发表于 2007-01-14 00:11 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
fsutil fsinfo drives|find /v "">drives.txt
|
|
| 第14楼 dikex | 发表于 2007-01-14 04:30 |
| 高级用户 发帖 366 积分 788 | |
Originally posted by Eblis at 2007-1-13 03:31 AM: 双击打开那个文本,然后全选,复制,新建一个文本,粘贴 让我们看看下图中winhex的对比结果吧,20在上面的复制前是00这个结束符的,所以for在处理这些字符串时遇到了00,就以为结束了而不继续处理下去,自然就得不到我们想要的结果了,也就是说对于for来说,它要处理的就只有驱动器: C:\这些数据,因此for /f "skip=1 tokens=2-6 delims=:\" %i in ('fsutil fsinfo drives') do echo %i %j %k %l %m %n 和 for /f %i in (a.txt) do echo %i 都只能显示出一部分来 [ Last edited by dikex on 2007-1-13 at 03:31 PM ] 附件 未命名.JPG (45.46 KiB) |
|
| 第15楼 zh159 | 发表于 2007-01-14 05:45 |
| 金牌会员 发帖 1,467 积分 3,687 | |
|
以前玩过的一段查找盘符改的,感觉比 15 楼的效率稍高些
|
|
| 1 2 下一页 |
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |