中国DOS联盟

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

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

中国DOS联盟论坛
现在时间是 2026-06-16 03:08
中国DOS联盟论坛 » DOS批处理 & 脚本技术(批处理室) » 关于重定向的写法,为什么>file echo abc? 查看 1,115 回复 6
楼 主 关于重定向的写法,为什么>file echo abc? 发表于 2008-11-17 20:13 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 15
注册 2007-12-09 10:55
UID 105123
性别 男
状态 离线
看了最近版主HAT以及其他人的一些帖子,
好像大家都喜欢>file echo abc
这种将文件写在前面的写法,
若同时接受输入输出,>outfile sort <infile
请问为什么要这样?
我觉得这样不好,有时候abc后面多写了几个空格,
尤其在重定向的场合,
出现了问题很难定位出,
echo abc>file,
则可极大地避免这种错误。
另外感觉>outfile sort <infile,
明显不如sort <infile >outfile直观!
大家怎么看?
2 发表于 2008-11-17 20:29 ·  中国 江西 赣州 安远县 电信
银牌会员
★★★★
积分 2,025
发帖 1,122
注册 2007-09-05 20:15
UID 96653
性别 男
状态 离线
>file echo abc 这样的方式:

我也感觉有些别扭,阅读起来怪怪的感觉;
但如果要输出的字符很长,如果在一开头就看到 >a.txt,就会更快地知道是输出到文件,而不用一直跟着 echo 直到行尾。

对此我没有坚定的立场...有时会这样用,有时不会...
3 发表于 2008-11-17 21:07 ·  中国 重庆 沙坪坝区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
>a.txt echo 3721
我这样写是为了避免在行尾产生多余的空格
如果你感兴趣的话还可以这样写
echo>a.txt 3721
4 发表于 2008-11-17 21:21 ·  中国 山东 淄博 联通
银牌会员
★★★
积分 1,604
发帖 646
注册 2008-04-13 23:39
UID 115804
性别 男
状态 离线
如果echo后的内容是0-9中的某个数字呢?
echo 2>a.txt,出错。。。
echo 2 >a.txt,其实你只想输出2,不想输出2之后的空格到a.txt
>a.txt echo 2,这样呢?、、、正常。
>a.txt echo 3 ,3之后还有空格,正常。
(echo 2)>a.txt 同样正常。
如果感觉别扭的话,就用最后的这个方法吧。
本帖最近评分记录 (共 1 条) 点击查看详情
评分人分数时间
tireless +3 2008-11-17 21:33
心绪平和,眼藏静谧,无比安稳的火... Purification of soul...Just a false...^_^
5 发表于 2008-11-17 21:24 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 15
注册 2007-12-09 10:55
UID 105123
性别 男
状态 离线

C:\>>file echo 3721

C:\>for /F "delims=" %I in (file) do @echo "%I"
"3721 "

C:\>echo 3721 >file

C:\>for /F "delims=" %I in (file) do @echo "%I"
"3721 "

C:\>echo 3721>file

C:\>for /F "delims=" %I in (file) do @echo "%I"
"3721"

不太明白HAT所说的>a.txt echo 3721这样写是为了避免行尾出现多余的空格?
如何理解?
6 发表于 2008-11-17 21:29 ·  中国 上海 浦东新区 电信
初级用户
积分 35
发帖 15
注册 2007-12-09 10:55
UID 105123
性别 男
状态 离线
第4楼所提及的情形,我觉得使用:
echo ^1>file
echo ^2>file
等比较好理解一些,
我需要知晓这时候1、2有其特殊含义,
就像对待正规表达式中元字符一样,需要转义。
7 Re 5楼 发表于 2008-11-17 22:44 ·  中国 重庆 沙坪坝区 电信
版主
★★★★★
积分 9,023
发帖 5,017
注册 2007-05-31 19:39
UID 89899
性别 男
状态 离线
willsort 兄同样举过 3721 这个例子,也同样被问到这个问题。
具体的,我也不想多说了,你就当 3721 是个变量吧,呵呵。

至于6楼提到的转义,可以跟4楼的加扩号,等方法一起和3楼归入“如果你感兴趣”
论坛跳转: