我有两个小到中等大小的文件(2k),这些文件的目的和目的完全相同。第二个文件是第一个文件被复制并用正斜杠替换反斜杠的结果。新文件大80字节(或每行一个字节)。
我用一个简单的批处理脚本做了这个,起初我以为脚本可能无意中添加了一些空格或其他工件。或者他们的扩展程序不同的事实与它有关(一个扩展名为tmp
,另一个扩展名为lst
。)
在编辑器中,我用反斜杠替换了新文件中的所有正斜杠,并在不更改扩展名的情况下保存了它。
并且,嘿,猜猜是什么?文件大小相同。
现在,在将其作为随机侥幸注销之前,我也看到在与第一个文件相同的方式创建的另外三对文件(换言之,六个文件)中展示的相同行为。它们在文件中每行都大一个字节。最大的是大约12k字节,最小的大约是2k。
我不认为它与转义有任何关系,因为我在使用Windows 7 cmd.exe
shell的Windows机器上。
还有一件事。我尝试了以下方法:
echo \\\\\ >> a.txt
echo ///// >> b.txt
文件大小匹配(7个字节)
有没有人对此行为有解释?
答案 0 :(得分:2)
我建议使用像Notepad++这样的编辑器打开文件,这些编辑器显示换行符的类型(Windows / Mac / Unix)。如果文件大小每行不同1个字节,则很可能是您的问题。
Notepad ++可以将行结尾显示为小CR / LF符号(视图 - >显示符号 - >显示行尾)并在Windows / Mac / Unix行结尾之间进行转换(编辑 - > EOL转换)。 / p>
Unix和Mac系统通常都存储一个字节行结束的文件(Mac:CR,Unix:LF),Windows使用两个字节(CR LF)。
根据您的批处理脚本使用的程序,即使您的系统是纯Windows框,也可能会出现这种情况。使用编辑器时没有区别的原因是编辑器通常保留文件的原始行结尾。
答案 1 :(得分:0)
好。我刚刚解决了@schnaader指出我正确的方向。它实际上与前向或反斜杠无关。
发生的事情是我的脚本为每一行添加了一个尾随空格的字符。为什么在我还原斜杠之后文件再次变成相同的大小是因为我用来查找和替换的编辑器(Komodo Edit)被设置为在文件保存时自动修剪尾随空格。
有趣。