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

标签 windows batch-file command-line wmic

从昨天开始,我尝试创建一个批处理文件,将有关计算机的一些信息写入一个 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

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

最佳答案

当您打算在与该格式不兼容的阅读器中读取 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

关于windows - 批量输出到文件包含中文符号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45980434/

相关文章:

C++ 进程检查

c - 吉文 : c compiler cannot create executables - tidalcycles installation

c - 如何在 Windows 中使用 MSVC 从命令行构建 DLL

batch-file - 变量没有跨越我的脚本中的 endlocal 屏障,或者宏定义中的语法存在一些错误

windows - 在具有自动应答的批处理文件中使用 CACLS.EXE

java - 如何判断命令行参数是否包含流重定向

command-line - 如何禁用 SMLNJ 警告?

C++ 在 Windows 中播放音频

Windows 批处理脚本获取当前驱动器名称

Java命令行,无响应