![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-12 14:23 |
共 47,811 主题排行 / 349,897 发帖 / 今日 0 篇 / 48,256 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [讨论]FOR语句读取文件所在路径带有空格问题 |
| 可打印版本 1,247 / 3 |
| 第1楼 tom | 发表于 2009-10-18 13:45 |
| 新手上路 发帖 2 积分 2 | |
|
[讨论]FOR语句读取文件所在路径带有空格问题 我想做的这个批处理,是想要读取某个通过提示输入的路径,并查找该文件夹下的 test.txt 文件,如果存在该文件就读取每一行的内容(除了含有“I will delete this line”字符的那一行),并将读取到的内容写入temp.txt,最后通过 move 的方式覆盖原文件。本来没有空格的路径工作很正常,但是只要带有空格,就出问题:
1. 不加双引号的话就就无法指定带空格的路径 2. 如果变量加双引号,For 语句读取的路径居然会多一个半边引号,这一点我是感到莫名其妙。比如说一个路径为 D:\Hello World 的文件夹,如果加双引号的话,系统就会返回错误提示:系统找不到文件 D:\Hello World"\test.txt ——多了半边引号。 小弟刚接触批处理,还请高手指导一下,代码如下: 这个批处理还有个缺点就是会删除空行,还不知道怎么弄,批处理的知识我还要再多家了解才行。 [ Last edited by tom on 2009-10-18 at 13:52 ] |
|
| 第2楼 newxso | 发表于 2009-10-18 16:14 |
| 初级用户 发帖 101 积分 73 来自 GZ | |
|
"%p%"\test.txt ----> "%p%\test.txt"
|
|
| 第3楼 mwm5 | 发表于 2009-10-18 16:50 |
| 初级用户 发帖 23 积分 40 | |
|
顶楼上的~~呵呵
|
|
| 第4楼 tom | 发表于 2009-10-18 19:44 |
| 新手上路 发帖 2 积分 2 | |
|
这我可真的纳闷了!
谢谢两位兄弟指正。用引号括主整个文件的地址这个方法我也试过了,这也是我陷入了这个怪题的一部分原因。 下午出去逛了一圈,回来看到解答一开始觉得不可能啊,我用这个方法怎么就不行。于时我试了一下这个简单版的 test.bat,没错,怎么这个批处理就没问题? 如果是这样,那就是跟我所要修改的文件有关系了。我要修改的是系统隐藏文件 desktop.ini,其实我取消了该文件的系统属性和隐藏属性结果也一样,For语句在读取这个文件时,好像是直接略过了一样,它根本就没有读取desktop.ini这个文件的每一行! For怎么会这样?加个双引号,它就不读了(而且必须是系统隐藏文件),不加双引号它就能读,这么怪?不信你们试试看(随便临时建立一个desktop.ini文件)。 [ Last edited by tom on 2009-10-18 at 19:47 ] |
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |