代码之家  ›  专栏  ›  技术社区  ›  Logan Wlv

PowerShell和Cmd之间的文件大小不同[重复]

  •  1
  • Logan Wlv  · 技术社区  · 6 年前

    我有点用 processconf.js 建立一个工具 configuration.json 来自多个文件 杰森 文件夹。

    下面是我使用的命令:

    node processconf.js file1.json file2.json > configuration.json 
    

    我在用 cmd 有一会儿,但今天我试着用 Powershell 不知何故 相同文件 以及 相同命令 我确实有不同的结果。

    一个文件是 33千字节 (CMD)另一个 66 kb (PowerShell),查看文件,它们有完全相同的行,我找不到任何视觉差异,这是为什么?

    1 回复  |  直到 6 年前
        1
  •  5
  •   Joey Gumbo    6 年前

    PowerShell默认为utf16le,而 cmd 默认情况下不执行Unicode重定向(在 可以 有时也会导致数据损坏)。

    如果不在PowerShell中使用重定向运算符,而是使用 Out-File 您可以指定编码,例如

    node processconf.js file1.json file2.json | Out-File -Encoding Utf8 configuration.json
    

    我想 -Encoding Oem 会有点像 CMD 行为,但通常不支持Unicode,并且涉及到转换。

    当然,重定向操作符没有指定任何选项的规定,因此当您关心确切的输出格式时,它通常不是最佳选择。由于PowerShell与Unix shell不同,处理对象时,文本和随机二进制数据是非常不同的。

    你也会有同样的行为 CMD 如果你和 cmd /u 顺便说一下。