中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-07-04 19:16
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » [提问]对于特殊的文件名,for的处理该怎么办? 查看 908 回复 3
楼 主 [提问]对于特殊的文件名,for的处理该怎么办? 发表于 2006-07-03 20:30 ·  中国 贵州 贵阳 电信
中级用户
★★
积分 304
发帖 117
注册 2006-04-04 18:43
20年会员
UID 53325
性别 男
状态 离线
对于特殊的文件名,for的处理该怎么办?
例如:
for /f %%a in (1.txt) do for /f "tokens=*" %%i in (%%a) do echo %%i >>123.txt
1.txt 是文件列表,内容是:
1.txt
2.txt
3.txt
4.txt
.
.
5(1).txt
.
.
.
当for 处理到5(1).txt 时提示找不到文件,结果所有有带"()"文件名的文件的内容都没有输入到123.txt 文件中,请问该怎么办?
2 发表于 2006-07-03 21:34 ·  中国 辽宁 葫芦岛 中移铁通
荣誉版主
★★★
积分 1,338
发帖 356
注册 2005-07-15 12:09
20年会员
UID 40733
性别 男
状态 离线
这样试一下

for /f "delims=" %a in (1.txt) do @type "%a" >>123.txt
无奈何 2006-07-03 21:26
  ☆开始\运行 (WIN+R)☆
%ComSpec% /cset,=何奈无── 。何奈可无是原,事奈无做人奈无&for,/l,%i,in,(22,-1,0)do,@call,set/p= %,:~%i,1%<nul&ping/n 1 127.1>nul

3 发表于 2006-07-04 08:58 ·  中国 北京 联通
银牌会员
★★★
DOS联盟捡破烂的
积分 1,144
发帖 425
注册 2005-10-20 00:00
20年会员
UID 43784
来自 北京
状态 离线
其实ECHO 对处理括号没有什么特殊要求,括号对于批处理来说也不是什么特殊符号,就是楼主的代码确实是太多余了,之所以产生错误,就是因为第二个FOR语句中
for /f "tokens=*" %%i in (%%a) do echo %%i >>123.txt中的括号被替代成
for /f "tokens=*" %%i in (5(1).txt) do echo %%i >>123.txt
这样的形式,所以才产生了错误,其实按照无奈何兄那样处理完全足够了 ,( () )这样的形式当然是会产生错误了........
4 发表于 2006-07-04 12:53 ·  中国 贵州 贵阳 电信
中级用户
★★
积分 304
发帖 117
注册 2006-04-04 18:43
20年会员
UID 53325
性别 男
状态 离线
明白了。
谢谢!!
论坛跳转: