过去我遇到过问题,试图这样做:
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
但是引号包含在输出文件中。与单引号相同。我不希望引号在输出文件中。
答案 0 :(得分:2)
直接重定向重定向器的字符可能不是anumeric。
将重定向器放在行的开头。
>test.txt echo 2
数字重定向该设备后的重定向器; 2
是stderr,1
是stdout等等。
答案 1 :(得分:1)
用括号括起来:
(echo sometext 2)> file.txt
(echo %some_variable%)> file.txt