![]() |
中国DOS联盟-- 联合DOS 推动DOS 发展DOS --联盟域名:www.cn-dos.net 论坛域名:www.cn-dos.net/forum |
| 游客 | 登录 | 注册 | 会员 | 搜索 | 中国DOS联盟 |
|
中国DOS联盟论坛 现在时间是 2026-08-06 07:10 |
共 48,039 主题排行 / 350,124 发帖 / 今日 2 篇 / 48,251 会员排行 |
| DOS批处理 & 脚本技术(批处理室) » echo的重定向问题 |
| 可打印版本 1,058 / 7 |
| 第1楼 sinbao | 发表于 2007-10-26 10:25 |
| 初级用户 发帖 73 积分 184 | |
|
echo的重定向问题 我们都知道
的功能, 但是这里的语法很重复,写起来很累. 不知道有没有这么做法: 来实现跟上面一样的功能呢? |
|
| 第2楼 vk | 发表于 2007-10-26 11:00 |
| 中级用户 发帖 86 积分 218 | |
|
for %v in (aaa bbb) do echo %v>>a.txt
|
|
| 第3楼 sinbao | 发表于 2007-10-26 13:29 |
| 初级用户 发帖 73 积分 184 | |
|
哦,这里aaa, bbb只是一个示例而已,并不是只要写这么简单两个串,
要写的东西很多,很长...所以用楼上的方法不是太好... 这么说吧,我有一个bat文件,里面有很多echo语句,但是他们都是直接写到屏幕上的,就是echo aaa这样,我想要把每一个echo都改成echo aaa>>a.txt这样的, 但是这样改很麻烦,每一个echo都要在臀部加一个>>a.txt,而又不好批量改,因为有些echo的臀部还有一些别的,比如echo abcd && echo ccdd || echo bbdd这样的句子. 所以我才想到能不能在程序的开头就指定一个echo的马桶,不用在每个echo后面都加一个接着... [ Last edited by sinbao on 2007-10-26 at 01:31 PM ] |
|
| 第4楼 lxmxn | 发表于 2007-10-26 14:05 |
| 版主 发帖 4,938 积分 11,386 | |
| 第5楼 Climbing | 发表于 2007-10-26 15:53 |
| 铂金会员 发帖 2,753 积分 6,962 来自 河北保定 | |
|
貌似没有什么好办法,可以考虑用一下sed的正则表达式或者gawk这一类的文本替换工具。
|
|
| 第6楼 sinbao | 发表于 2007-10-28 22:03 |
| 初级用户 发帖 73 积分 184 | |
|
我倒是知道perl有这个select关键字,可以把后面所有print都输出到指定的地方,只是DOS如果有的话,那将会是very nice了...
|
|
| 第7楼 xuehaiwuya | 发表于 2007-10-28 23:34 |
| 初级用户 发帖 79 积分 165 | |
|
A.txt
abcd.dll cdfg.exe dfgrt.dll fghdghkl.dll dfegerhgrehgf.exe ... B.txt I !Love you ("c:\5.txt") I Love you ("c:\6.txt") I Love you ("c:\7.txt") 如何循环生成B1.txt,B2.txt,B3.txt,... 其中B1.txt I !Love you ("c:\5.txt") I Love you ("c:\abcd.dll") I Love you ("c:\7.txt") B2.txt I !Love you ("c:\5.txt") I Love you ("c:\cdfg.exe") I Love you ("c:\7.txt") B3.txt I !Love you ("c:\5.txt") I Love you ("c:\dfgrt.dll") I Love you ("c:\7.txt") .... 能用批处理执行这个过程吗? 暂时在本论坛没看到可实现的BAT代码 请高手帮忙实现! 执行 .bat @echo off setlocal enabledelayedexpansion set /a count=0 for /f "delims=" %%i in (a.txt) do ( set /a "count+=1" set file=B!count!.txt rem echo !count! echo I ^^!Love you ^("c:\5.txt"^)>!file! echo I Love you ^("%%i"^)>>!file! echo I Love you ^("c:\7.txt"^)>>!file! ) endlocal goto :EOF 我图在 set file=B!count!.txt rem echo !count! 中间加入 set file=B!count!.txt if not exist ("%%%i%") do echo 1>%%i rem echo !count! 不行啊 我的意思是假若A.TXT中的文件在系统中不存在就自动生成 |
|
| 第8楼 jojand | 发表于 2007-10-31 11:16 |
| 初级用户 发帖 57 积分 117 | |
|
qbasic
|
|
|
[ 联系联盟系统管理团队 -
中国DOS联盟 -
标准版 ] Sponsored by ifanr Inc | © 2001–2023 |