使用命令ECHO重定向文件

时间:2015-01-31 13:07:43

标签: windows cmd

过去我遇到过问题,试图这样做:

echo 2> test.txt

要清楚,我想将文本“2”放入文件test.txt 现在,我知道你可以解决这个问题:

echo.2> test.txt

但是,当我尝试这样做时,问题就会发生一些变化:

echo sometext 2> test.txt

再次清楚,我想将文本“sometext 2”回显到文件中。所以,尝试相同的技巧:

echo.sometext 2> test.txt

...但它不起作用,因为看起来点对第一个空格后放置的内容没有影响。 (他所做的只是回显sometext,并将错误消息放入test.txt。但是,没有错误消息,但他确实创建了一个文件,无论是空文件。)

问题扩展到其他值,例如

echo sometext 8> test.txt

与将2替换为2时完全相同。当你这样做时:

echo sometext 1> test.txt

他将仅使用内容“sometext”创建文件“test.txt”。

问题:如何让此命令起作用:

echo sometext 2> test.txt

但是,必须在上下文中询问这个问题,即“sometext 2”本身就是一个字符串,可以用%some_variable%之类的变量来表示,并且很难操纵该字符串中的任何内容。更清楚:

我知道这有效:

echo sometext ^2> test.txt

但是,这意味着我必须将文本“sometext 2”更改为“sometext ^ 2”。这不是不可能的,但如果我可以操纵它周围的命令会更容易。

这可能,怎么样?

ps:我知道这也有效:

echo "sometext 2"> test.txt

但是引号包含在输出文件中。与单引号相同。我不希望引号在输出文件中。

2 个答案:

答案 0 :(得分:2)

直接重定向重定向器的字符可能不是anumeric。

将重定向器放在行的开头。

>test.txt echo 2

数字重定向该设备后的重定向器; 2是stderr,1是stdout等等。

答案 1 :(得分:1)

用括号括起来:

(echo sometext 2)> file.txt
(echo %some_variable%)> file.txt