【问题标题】:Appending data from a file to another file in a .bat file将文件中的数据附加到 .bat 文件中的另一个文件
【发布时间】:2011-07-05 10:54:26
【问题描述】:

我有一个 .bat 文件,它从以前的一些命令生成一个文件,我需要在这个 .bat 文件中添加一些将这个文件的内容附加到另一个文件的 dos 命令,即源文件和目标文件的名称是固定的,都是文本文件。

在某些情况下,源文件不是从 .bat 上的命令创建的,所以也许可以在执行 append 命令之前添加对这种情况的检查?

我该怎么做?

我尝试了copy target+source target,但有时使用它我发现目标文件在行开头有一些额外的字符,我不知道为什么。

谢谢

【问题讨论】:

    标签: windows file append batch-file


    【解决方案1】:

    如果您的文本是 UTF-8 或 UTF-16 编码的,那么多余的字符可能是 BOM(字节顺序标记)?
    BOM 存在文件开头,长度为 3 个字节。
    是否符合您的问题?

    【讨论】:

    • 不,它们没有编码为 UTF-8 或 UTF-16,我认为这些额外的字符来自我在原始文件上复制的事实,正如 j_random_hacker 所说。
    【解决方案2】:

    您不能直接在原始文件的顶部进行复制。还要确保使用/B 开关COPY 使用“二进制模式”进行复制——不这样做会产生以下负面后果:

    1. 出现在源文件之一中的任何“文件结尾”字符(ASCII 代码 26)都会在该点过早地截断文件。文本文件通常不包含此字符,但二进制文件(例如 .EXE 文件或 .DOC 文件)通常会包含此字符。
    2. “文件结尾”字符将附加到输出文件的末尾。

    正确做法示例:

    copy /B input1 + input2 output
    move /Y output input1
    

    move 命令将文件output 移回到input1 之上; /Y 抑制“覆盖?”否则会看到提示。

    【讨论】:

      猜你喜欢
      • 2021-03-05
      • 2019-08-15
      • 2011-07-24
      • 1970-01-01
      • 2018-12-06
      • 1970-01-01
      • 2014-02-26
      • 2015-10-17
      • 1970-01-01
      相关资源
      最近更新 更多