【问题标题】:Echoing to a file results in spaces in Batch回显到文件会导致批处理中出现空格
【发布时间】:2013-10-09 13:37:43
【问题描述】:

使用批处理文件 (.bat),我正在制作一个需要动态路径的脚本,以便它可以在多台计算机上运行。我的问题是当我将某些内容回显到文件时,它会添加一行和一个回车。

假设我在批处理文件的目录中有一个名为foo.txt的文本文件,其内容完全为空。

在批处理文件中,我运行:

echo test > foo.txt

foo.txt 的内容将是:

L1: foo

L2: 

在第一行foo 之后会有一个空格,第二行是空行。现在,这完全没问题,我会完全忽略它,但文件名路径不会忽略它。

像这样从 foo.txt 导入文本:

set /p foo=< foo.txt

...然后:

set /p name=< C:\A.D.V.E.N.T.U.R.E.\test\%foo%\test2.txt

...将被解释为:

set /p name=< C:\A.D.V.E.N.T.U.R.E.\test\foo \test2.txt

包括不需要的空间。有没有办法让你可以在没有空格的情况下将文本写入文件,或者可以用来删除回车和空格的命令?

【问题讨论】:

    标签: windows batch-file spaces


    【解决方案1】:

    您还可以使用括号来确保输出中不包含不需要的空格:

    (echo test)      >foo.txt
    

    【讨论】:

      【解决方案2】:

      数据应该是test,而不是foo

      经典的,试试

      >foo.txt echo test
      

      但请确保test 之后没有尾随空格。

      (附加到foo.txt 使用&gt;&gt; 代替&gt;

      【讨论】:

      • 谢谢!虽然它仍然插入了一个回车,但现在空间已经消失了!
      • 还要注意echo test&gt;foo.txt 也可以。要摆脱空间,您只需......好吧,摆脱空间!
      • 啊,是的,@harry - 但是如果要回显的字符串以数字结尾,则它无法生成完整的字符串,而 &gt;file echo something 可以。
      【解决方案3】:

      以上给出的答案有效。 但是,我发现它的真正原因是&gt; 之前的空格 所以,而不是

      echo test > foo.txt
      

      应该是

      echo test> foo.txt
      

      注意。不要在 test 和 > 之间放置任何空格。这会导致尾随空格。

      【讨论】:

        猜你喜欢
        • 2012-07-03
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2017-12-11
        • 1970-01-01
        • 1970-01-01
        • 2018-05-04
        • 1970-01-01
        相关资源
        最近更新 更多