![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-05 23:01 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » [求助] 关于for的问题? |
| 可打印版本 695 / 2 |
| 第1楼 hxwxyz | 发表于 2007-09-30 13:43 |
| 中级用户 发帖 123 积分 245 | |
|
[求助] 关于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" 一切都能正常运行 我不知道这是为什么? 请各位大哥帮我解答一下 谢谢了!(我只是想知道什么原因) |
|
| 第2楼 lxmxn | 发表于 2007-09-30 16:33 |
| 版主 发帖 4,938 积分 11,386 | |
|
因为文件名中含有空格,而for /f命令如果没有选项设置,默认是取以空格或者制表符(TAB)分割的第一个字段,所以"%%i" 就相当于"WINDOWS" 了,而不是你想要的“WINDOWS XP的几个小技巧.txt”。
要用 for /f 来完成的话,可以加上“tokens=*”这个选项,意思是取一行的所有字段。 for /f "tokens=*" %%i in ('dir /b *.txt') do ... |
|
| 第3楼 hxwxyz | 发表于 2007-09-30 19:58 |
| 中级用户 发帖 123 积分 245 | |
|
谢谢版主
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |