Dos批处理:写入没有行结尾的文件

时间:2012-02-28 11:04:42

标签: batch-file newline dos text-files

编写dos批处理脚本时遇到了这种情况。我用来计算文本字符串的CRC(校验和)的工具要求文本在文件中。我试图获取CRC的数据是文件名,但是当使用批处理将此文件名放入文本文件来计算CRC时,批处理脚本自然地将行结束(CR / LF)和空白行放在结束。由于这会导致CRC错误,这是一个问题。

有没有办法让批处理脚本写入文本文件而不添加行结尾? IE输出一行未完成的文件?

-K.Barad

2 个答案:

答案 0 :(得分:9)

<nul set /p ".=text" > file

它比echo.|set /P ="text" > file

更快更安全

nul重定向比echo.的管道快(btw echo.可能失败)。
引号的样式允许输出引号。

但总有限制!
Vista和Win7有一个“功能”来压制领先的空间,Tabs和CR Xp可以输出带有前导空格的文本等 并且不可能以等号开始输出文本(导致语法错误)

答案 1 :(得分:5)

你可以

echo.|set /P ="text" > file

source

或者直接将文本传递给命令行: echo“text”| checksum_program.exe

修改

如果您使用的是CRC32DOS,则可以使用其命令行选项-c来忽略CR