批量输出到文件包含中文符号

Batch output to file contains Chinese symbols

从昨天开始,我尝试创建一个批处理文件,将有关计算机的一些信息写入一个 txt 文件,稍后将用于保持数据库更新。唯一的问题是,有时输出只是随机的中文符号。

这是当前版本的批处理文件输出示例。

SerialNumber 
XXXXXX
Manufacturer
FUJITSU // American Megatrends Inc.
Name
Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz

到目前为止看起来还不错,但只要我想自己添加一些文本,或将一些更大的信息或普通文本添加到文本文件中,它就会用那些该死的符号将其写下来。这是在制造商和 CPU 信息之间写入 "CPU" 的输出。

SerialNumber 
XXXXXX
Manufacturer
FUJITSU // American Megatrends Inc.
偃⁕਍Name
Intel(R) Core(TM) i5-4570 CPU @ 3.20GHz

唯一的问题是我已经尝试用 chcp 65001 解决这个问题,但它仍然无法正常工作。 :/

这是我用来将信息写入 txt 文件的当前代码。

@SET PathSave=C:\Test.txt
@ECHO.
@ECHO Collecting Informations
@ECHO.
@ECHO Seriennummer
@wmic bios get serialnumber >> %PathSave%
@ECHO Marke
@wmic bios get manufacturer >> %PathSave%
@ECHO CPU
@wmic cpu get name >> %PathSave%
@ECHO Netzwerkadapter
@wmic nicconfig >> %PathSave%
@ECHO Press any key to complete!
@PAUSE > NUL

也许有人已经知道这个原因,因为我看到其他人试图解决这个问题,但到目前为止我尝试的一切都没有奏效。

当您打算以 reader 与该格式不兼容的格式读取 UTF-16 LE (BOM) 时,有一个足够简单的修复方法。

通过 More 传递结果,例如

@WMIC CPU Get Name|MORE>>"%PathSave%"

…和:

@ECHO OFF
SET "PathSave=C:\Test.txt"
ECHO(
ECHO Collecting BIOS, CPU and Network Information
ECHO(

(   WMIC BIOS Get Manufacturer,SerialNumber
    WMIC CPU Get Name
    WMIC NICConfig)|MORE>"%PathSave%"

ECHO Press any key to complete ...
PAUSE>NUL