中国DOS联盟论坛

中国DOS联盟

-- 联合DOS 推动DOS 发展DOS --

联盟域名:www.cn-dos.net  论坛域名:www.cn-dos.net/forum
DOS,代表着自由开放与发展,我们努力起来,学习FreeDOS和Linux的自由开放与GNU精神,共同创造和发展美好的自由与GNU GPL世界吧!

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: [求助] 关于for的问题? 上一主题 | 下一主题
hxwxyz
中级用户




积分 245
发帖 123
注册 2007-6-8
状态 离线
『楼 主』:  [求助] 关于for的问题?

我写的一个代码  是批量转换格式的
假设我要的东西都在当前目录

for /f %%i in ('dir /b *.txt') do ren "%%i" "%%~ni.html"

但当文件为 :WINDOWS XP的几个小技巧.txt   或   ADSL拨号中出现的错误代码 .txt这类文件时,就报错,说系统找不到指定的文件


但我把代码改成  for  %%i in (*.txt) do ren "%%i" "%%~ni.html"
一切都能正常运行  

我不知道这是为什么? 请各位大哥帮我解答一下  谢谢了!(我只是想知道什么原因)

2007-9-30 13:43
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




积分 11386
发帖 4938
注册 2006-7-23
状态 离线
『第 2 楼』:  

因为文件名中含有空格,而for /f命令如果没有选项设置,默认是取以空格或者制表符(TAB)分割的第一个字段,所以"%%i" 就相当于"WINDOWS" 了,而不是你想要的“WINDOWS XP的几个小技巧.txt”。

要用 for /f 来完成的话,可以加上“tokens=*”这个选项,意思是取一行的所有字段。

for /f "tokens=*" %%i in ('dir /b *.txt') do ...

2007-9-30 16:33
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
hxwxyz
中级用户




积分 245
发帖 123
注册 2007-6-8
状态 离线
『第 3 楼』:  

谢谢版主

2007-9-30 19:58
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

请注意:您目前尚未注册或登录,请您注册登录以使用论坛的各项功能,例如发表和回复帖子等。


可打印版本 | 推荐给朋友 | 订阅主题 | 收藏主题



论坛跳转: