【问题标题】:Echo line to a file on windows with a unix linebreak使用 unix 换行符将行回显到 Windows 上的文件
【发布时间】:2012-03-26 16:55:46
【问题描述】:

有没有什么办法:

echo test line > t.txt

在 windows 批处理文件或 makefile 中运行使用 unix 行结尾 (\n) 而不是 windows (\r\n)?

【问题讨论】:

  • 您是否限制自己使用原生安装中可用的工具?如果没有,那么您可以使用更好的脚本语言来生成 .bat 文件。
  • @DavidHeffernan 我真的宁愿只使用默认工具。如果这完全不可能,我可以接受别的东西,但最好是一个工具来做到这一点,而不是另一种脚本语言,因为我想从 makefile 中使用它
  • 哪个工具不接受 Windows 行尾?这不是您应该修复的工具吗?
  • @DavidHeffernan “工具”是 VS,它接受所有行尾。我只是通过将一些行作为标题写入文件然后将整个文件复制到其中来创建一些源文件。我正在复制的文件是 UNIX 行尾,所以我最终得到了一个混合行尾的文件。每次我在 VS 中打开这样的文件时,都会提示我转换行尾。这很烦人。
  • 你不能在上面运行 unix2dos 吗?

标签: windows echo


【解决方案1】:

不,您不能使用echo 来执行此操作。 Echo 的工作原理是简单地编写一行文本,后跟一个 CR/LF 对(Windows 行结束字符)。重定向到文件只是将该行文本发送到文件句柄而不是stdout。无法修改使用的行结束符。

【讨论】:

    【解决方案2】:

    结合此处Windows batch: echo without new line 和此处Is it possible to put a new line character in an echo line in a batch file? 的答案

    SET LF=^
    
    
    REM important to have two blank lines after the SET command
    <NUL set /p=test line^%LF%%LF%> t.txt
    

    【讨论】:

      猜你喜欢
      • 2010-10-17
      • 2011-12-25
      • 2014-06-25
      • 1970-01-01
      • 2021-09-11
      • 1970-01-01
      • 2012-08-03
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多