【问题标题】:Will merging several files into one using command prompt from windows not affect the data inside those files?使用 Windows 中的命令提示符将多个文件合并为一个不会影响这些文件中的数据吗?
【发布时间】:2015-10-30 03:31:14
【问题描述】:

我正在尝试将各种 rpt 文件合并为一个,以便我可以快速进行数据分析。我通过windows cmd使用的脚本如下:

cd "d"\work files\colors\finished" 

copy *.rpt consolidated.rpt 

由于我在这里处理数字,我想知道我的合并 rpt 上的数据是否仍然准确,因为它已经经历了那个 cmd 事情?例如,在格式化 excel 文件 (.xlsx) 的情况下,一旦我使用上面的代码,数据就会被破坏。

【问题讨论】:

  • 这些“rpt”文件的格式是什么?
  • 嗨,格雷戈尔。这些特别是纯文本,其中包含各种数据。
  • 它应该可以工作。见:support.microsoft.com/en-us/kb/69575
  • 谢谢格雷戈尔。我希望这会奏效。谢谢!

标签: windows file cmd analysis


【解决方案1】:

copy 命令有两种不同的行为,两种不同的使用方式。

第一个用于复制文件。这是

时使用的行为
  • 源只有一个文件,没有指明目标(当前文件夹默认为目标),是文件夹路径或者只有一个文件。

  • 源包含通配符,目标为无(当前文件夹)或文件夹路径

第二种行为用于将多个源文件合并为一个目标文件。

时使用此行为
  • 目标是一个文件,源是由+符号分隔的文件列表

  • 目标是一个文件,源包含通配符

第一种行为和第二种行为有很大的不同。默认情况下

  • 对于复制操作,文件被视为二进制数据
  • 对于组合操作,文件被视为 ASCII。

在您的情况下,由于该命令将被视为组合操作,因此文件将被视为 ASCII,生成的文件将包含源文件中的数据,直到第一个 0x1A 字符(或文件末尾)如果没有找到0x1A

要使其工作并确保没有数据被更改,您必须向copy 命令指示该操作必须是二进制的

copy /b *.rpt consolidated.rpt 

更多信息:

【讨论】:

  • 感谢 MC。另一个问题,什么是二进制数据?我对 ASCII 有点了解,因为我在一次数据分析中遇到过它。对不起,我有很多问题。我还是个初学者。 :) 先感谢您。我想我需要在互联网上对此进行研究。
  • 嗨 MC。我已经将该过程与命令中插入的 /b 进行了比较。但是,与您的方法相比,第一种方法渲染的数据多一半。
  • @FrancesOuanoPonce,您要加入的文件大小的总和与目标文件的大小有什么区别?
  • 抱歉,我忘记从处理第二种方法的目录中取出第一个合并的目标文件。实际上,第一种方法和第二种方法没有区别。
  • @FrancesOuanoPonce,对于纯文本数据,它应该没有任何区别。我只是想指出它可能会有所不同,具体取决于文件中的数据。 /b 只是确保您不必担心它。
【解决方案2】:

很大程度上取决于文件格式。如果文件只是普通的旧文本,那么数据应该没问题,但大多数二进制数据格式不能很好地处理直接连接。我看到的最大问题是,如果 .rpt 文件是纯文本文件,则很难分辨一个结束和下一个开始的位置。

【讨论】:

  • 嗨,吉姆,感谢您的回复。您能否详细说明“很难说出一个结束和下一个开始”是什么意思。这些文件实际上是纯文本。
猜你喜欢
  • 1970-01-01
  • 2015-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-01-18
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多