中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-08-13 11:24
中国DOS联盟论坛 » DOS学习入门 & 精彩文章 (教学室) » for 语句生成批处理问题 查看 1,359 回复 3
楼 主 for 语句生成批处理问题 发表于 2007-02-02 03:13 ·  中国 北京 鹏博士BGP
初级用户
积分 28
发帖 12
注册 2007-01-19 05:33
19年会员
UID 76978
性别 男
状态 离线
首先在要生成的批处理运行的工作目录下有好多文件夹,批处理实现的功能是将这些文件夹及里面的文件压缩,放在指定目录,当然外部调用rar 不是问题的重点.
我写的语句是
for /f %a in ('dir /b') do cd %a &winrar s -f e:\%a.rar &cd ..
这样执行下来得到的答案是"找不到压缩文件."也就是说,要实现这个功能必须用批处理执行才行.所以这个问题就变成了.for 语句生成批处理的问题for /f %a in ('dir /b') do @echo cd %a &winrar s -f e:\%a.rar &cd .. >>a.bat这时你会发现中间要生成批处理的那部分内容无论是括起来还是引起来,echo都把他当作命令处理.所以小弟无奈,请各位大侠支招
2 发表于 2007-02-02 08:37 ·  中国 江苏 南京 电信
初级用户
★★
积分 138
发帖 50
注册 2007-01-23 10:59
19年会员
UID 77428
性别 男
状态 离线
关键问题在于你写错了。
命令行下这么写:
for /f %a in ('dir /ad /b') do cd %a &……
批处理文件中双写%
这样生成的%a才是目录。
3 发表于 2007-02-02 08:44 ·  中国 江苏 南京 电信
初级用户
★★
积分 138
发帖 50
注册 2007-01-23 10:59
19年会员
UID 77428
性别 男
状态 离线
for /f %a in ('dir /ad /b') do @echo cd %a ^&winrar s -f e:\%a.rar ^&cd .. >>a.bat

加上转义符^就可以输出到文件了。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
txtrain +1 2007-02-03 00:31
4 发表于 2007-02-03 00:38 ·  中国 北京 鹏博士BGP
初级用户
积分 28
发帖 12
注册 2007-01-19 05:33
19年会员
UID 76978
性别 男
状态 离线
zhclvip:
我想写成批处理我想要的就是那个转义符,感觉你能够这么短的时间给我提供,谢谢.

另外对于你说的."批处理文件中双写%,这样生成的%a才是目录。"感觉有异义,因为%a所提供的只是一个名字而已.它并没有所谓文件或者目录属性.很感谢你回答我的问题.这样我以后每天的工作量就少多了,谢谢你
论坛跳转: