命令 ECHO 的文件重定向问题
file redirect issue with command ECHO
我过去遇到过问题,尝试这样做:
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
这与将 8 替换为 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
但是引号包含在输出文件中。与单引号相同。而且我不希望引号在输出文件中。
用括号括起来:
(echo sometext 2)> file.txt
(echo %some_variable%)> file.txt
直接位于重定向器之前的字符不能是数字。
将重定向器放在行首。
>test.txt echo 2
数字重定向该设备后的重定向器; 2
是 stderr,1
是 stdout,等等
我过去遇到过问题,尝试这样做:
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
这与将 8 替换为 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
但是引号包含在输出文件中。与单引号相同。而且我不希望引号在输出文件中。
用括号括起来:
(echo sometext 2)> file.txt
(echo %some_variable%)> file.txt
直接位于重定向器之前的字符不能是数字。
将重定向器放在行首。
>test.txt echo 2
数字重定向该设备后的重定向器; 2
是 stderr,1
是 stdout,等等