![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-09-23 23:16 |
共 47,812 主题排行 / 349,917 发帖 / 今日 0 篇 / 48,274 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [已结]空格目录下的FOR命令显得困惑 |
| 可打印版本 1,730 / 9 |
| 第1楼 flysp | 发表于 2006-07-13 19:26 |
| 中级用户 发帖 41 积分 207 | |
|
[已结]空格目录下的FOR命令显得困惑 假如
C:\Program Files\Internet Explorer\ 存在1.txt 2.txt 执行 cd \ c: dir /s /b 1.txt >ml.txt dir /s /b 2.txt >>ml.txt for /f %%i in (ml.txt) do @echo %%i | del %%i 最后的结果不成功 在命令行下用 for /f %i in (c:\ml.txt) do @echo %i 显示:C:\Program 居然不显示全部的路径。不知所以了,Program Files,只显示空格前的,不显示全部路径。这样想删除文件也不成了。怎么才能避免这个空格呢? 试了这两个 for /f %i in (c:\ml.txt) do @echo " %i" for /f %i in (c:\ml.txt) do @echo %~fi 都不成啊 :(不知所以。 [ Last edited by willsort on 2006-7-23 at 13:14 ] |
|
| 第2楼 bagpipe | 发表于 2006-07-14 09:36 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
呵呵,知道WHY吗?
那是因为你的for命令缺少一个DELIMS= 的参数 for /f “ delims=" %i in (c:\ml.txt) do @echo %i 你在试试,哈哈哈........... |
|
| 第3楼 flysp | 发表于 2006-07-14 12:12 |
| 中级用户 发帖 41 积分 207 | |
|
thank bagpipe。可以了
不过还是要问问 delims 不是定位分隔符号的吗?我的前边不成功是不是FOR本身默认的是TOKEN里边的每一行一第一列啊。^_^看来我还是对这些参数有些不懂 "delims="在这里,是不是就是不分界,没有分隔符的意思 要学习中…… 万分感谢 [ Last edited by flysp on 2006-7-14 at 12:26 ] |
|
| 第4楼 bagpipe | 发表于 2006-07-14 13:10 |
| 银牌会员 发帖 425 积分 1,144 来自 北京 | |
|
因为DELIMS=默认的是以空格和<TAB>为默认值的,所以当你一行中出现有空格的时候他只取第一个空格之前的内容,明白???
|
|
| 第5楼 buddiyar | 发表于 2006-07-14 23:57 |
| 初级用户 发帖 75 积分 160 | |
|
"FOR本身默认的是TOKEN里边的每一行一第一列"???
汗啊 最近一直在找关于for的用法 竟然不知还有这等要事 算是知道自己是多菜了 刻骨铭心啊 小的记下了: 对于有空格的文本行要使用delims= |
|
| 第6楼 flysp | 发表于 2006-07-15 15:12 |
| 中级用户 发帖 41 积分 207 | |
|
明白,谢谢
|
|
| 第7楼 IceCrack | 发表于 2006-07-22 20:13 |
| 中级用户 发帖 168 积分 332 来自 天涯 | |
|
for的命令值得我们去深入的了解啊
|
|
| 第8楼 ke | 发表于 2006-10-02 19:20 |
| 新手上路 发帖 2 积分 4 | |
|
多谢,明白了
|
|
| 第9楼 jieok3375 | 发表于 2006-10-16 00:33 |
| 中级用户 发帖 130 积分 282 来自 广东 | |
|
学习了……
|
|
| 第10楼 pengfei | 发表于 2006-10-16 10:20 |
| 银牌会员 发帖 485 积分 1,218 来自 湖南.娄底 | |
|
for /f “ delims=" %i in (c:\ml.txt) do @echo %i
for默认的分格符为空格, 而"delims="是取消了默认分隔符, 以使整行内容得到提取. 使用"tokens=*"也可以达到同样效果, 它是把零列以后所有的内容都赋给一个变量%%? |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |