0

我有两个中小型文件 (2k),它们的所有意图和目的都是相同的。第二个文件是第一个文件被复制并用正斜杠替换反斜杠的结果。新文件大了 80 个字节(或每行一个字节)。

我用一个简单的批处理脚本做到了这一点,起初我认为该脚本可能无意中添加了一些空格或其他工件。或者他们的扩展名不同的事实可能与它有关(一个有tmp扩展名,另一个有lst扩展名)。

在编辑器中,我用反斜杠替换了新文件中的所有正斜杠,并在不更改扩展名的情况下保存了它。

而且,你猜怎么着? 文件的大小再次相同。

现在,在将其作为随机侥幸注销之前,我还看到以与第一个相同的方式创建的其他三对文件(即六个文件)中表现出相同的行为。它们在文件中每行都大一个字节。最大的约为 12k 字节,最小的约为 2k。

我认为这与转义无关,因为我在使用 Windows 7 cmd.exeshell 的 Windows 机器上。

还有另一件事。我尝试了以下方法:

  echo \\\\\ >> a.txt
  echo ///// >> b.txt

大小匹配的文件(7 个字节)

有人对这种行为有解释吗?

4

2 回答 2

2

我建议使用像Notepad++这样显示换行类型(Windows/Mac/Unix)的编辑器打开文件。如果文件大小每行相差 1 个字节,这很可能是您的问题。

Notepad++ 可以将行尾显示为小的 CR/LF 符号(查看 -> 显示符号 -> 显示行尾)并在 Windows/Mac/Unix 行尾之间进行转换(编辑 -> EOL 转换)。

Unix 和 Mac 系统通常都存储以一个字节行结尾的文件(Mac:CR,Unix:LF),Windows 使用两个字节(CR LF)。

根据您的批处理脚本使用的程序,即使您的系统是纯 Windows 机器,也可能会发生这种情况。使用编辑器没有区别的原因是编辑器通常保留文件的原始行结尾。

于 2013-08-20T15:14:12.733 回答
0

好的。我刚刚解决了。@schnaader 为我指出了正确的方向。它实际上与正斜杠或反斜杠无关。

发生的事情是我的脚本在每一行添加了一个尾随空格字符。为什么在我恢复斜杠后文件再次变得相同大小是因为我用来查找和替换的编辑器(Komodo Edit)设置为在文件保存时自动修剪尾随空白。

有趣的。

于 2013-08-20T15:20:33.163 回答