在DOS中使用echo而不使用尾随空格

Ray*_*yne 7 space dos echo

我注意到当我使用echo在DOS中将某些内容打印到文件时,会在字符串中附加一个空格.我需要打印没有尾随空格的字符串.有没有办法做到这一点,或作为一种解决方法,从文件中删除尾随空格?

Den*_*nis 19

如果我正确理解了问题,那么就编写了尾随空格.

代替

echo string > file
Run Code Online (Sandbox Code Playgroud)

使用

echo string>file
Run Code Online (Sandbox Code Playgroud)

  • @Synetech`(echo 1 2 3)> file` (5认同)
  • 这似乎很好,但它不会起作用.试试这个:`echo 1 2 3> file`.如果字符串恰好以数字结尾,则重定向会将其视为管道通道.你可以把它放在引号中,但你可能不希望它在引号中. (2认同)

pax*_*blo 11

假设您正在谈论的是MSDOS cmd.exe而不是实际的(相当过时的)MSDOS,有很多方法可以做到这一点,第一种方法是:

echo Here is some text>output.txt
Run Code Online (Sandbox Code Playgroud)

但我觉得这比可读性稍差,因为我习惯于能够在命令行上清楚地描述"参数".

或者,没有什么可以阻止您更换命令行的顺序:

>output.txt echo Here is some text
Run Code Online (Sandbox Code Playgroud)

这将允许您仍然分离参数,同时没有在输出文件中放置无关的空格.

实际上,我经常将这种方法用于代码块:

>output.txt (
    echo hello
    echo goodbye
)
Run Code Online (Sandbox Code Playgroud)

这会将行写入文件.我发现在这种情况下它更好,因为你知道输出开始的时候,而不是去看看代码块的结尾.