中国DOS联盟论坛

中国DOS联盟

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

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

游客:  注册 | 登录 | 命令行 | 会员 | 搜索 | 上传 | 帮助 »
作者:
标题: echo的重定向问题 上一主题 | 下一主题
sinbao
初级用户





积分 184
发帖 73
注册 2007-5-24
状态 离线
『楼 主』:  echo的重定向问题

我们都知道
echo "aaa">>a.txt
echo "bbb">>a.txt
的功能,
但是这里的语法很重复,写起来很累.
不知道有没有这么做法:
rem 重定向下面所有的echo都输出到a.txt
echo "aaa"
echo "bbb"
来实现跟上面一样的功能呢?

2007-10-26 10:25
查看资料  发短消息 网志   编辑帖子  回复  引用回复
vk
中级用户




积分 218
发帖 86
注册 2006-8-10
状态 离线
『第 2 楼』:  

for %v in (aaa bbb) do echo %v>>a.txt



2007-10-26 11:00
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
sinbao
初级用户





积分 184
发帖 73
注册 2007-5-24
状态 离线
『第 3 楼』:  

哦,这里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 ]

2007-10-26 13:29
查看资料  发短消息 网志   编辑帖子  回复  引用回复
lxmxn
版主




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


(echo aaa
echo bbb
echo ok
echo the end
)>test.txt


2007-10-26 14:05
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复
Climbing
铂金会员

网络独行侠


积分 6962
发帖 2753
注册 2003-4-16
来自 河北保定
状态 离线
『第 5 楼』:  

貌似没有什么好办法,可以考虑用一下sed的正则表达式或者gawk这一类的文本替换工具。



偶只喜欢回答那些标题和描述都很清晰的帖子!
如想解决问题,请认真学习“这个帖子”和“这个帖子”并努力遵守,如果可能,请告诉更多的人!
2007-10-26 15:53
查看资料  发送邮件  访问主页  发短消息 网志  OICQ (653668)  编辑帖子  回复  引用回复
sinbao
初级用户





积分 184
发帖 73
注册 2007-5-24
状态 离线
『第 6 楼』:  

我倒是知道perl有这个select关键字,可以把后面所有print都输出到指定的地方,只是DOS如果有的话,那将会是very nice了...

2007-10-28 22:03
查看资料  发短消息 网志   编辑帖子  回复  引用回复
xuehaiwuya
初级用户




积分 165
发帖 79
注册 2007-10-27
状态 离线
『第 7 楼』:  

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中的文件在系统中不存在就自动生成

2007-10-28 23:34
查看资料  发短消息 网志   编辑帖子  回复  引用回复
jojand
初级用户





积分 117
发帖 57
注册 2007-10-23
状态 离线
『第 8 楼』:  

qbasic

2007-10-31 11:16
查看资料  发送邮件  发短消息 网志   编辑帖子  回复  引用回复

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


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



论坛跳转: