2017-08-31 184 views
2

因为昨天我尝试创建一个批处理文件,它将有关计算机的几个信息写入到一个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 

也许有人已经知道这个事业因为我已经看到了一些人试图解决的问题,但一切到目前为止,我已经试过没有工作。

+0

'WMIC'输出为UTF-16,如果你读的东西输出能够自然地读取编码类型这不应该是一个问题。 – Compo

+0

我正在用记事本打开.txt文件。 –

+0

这是你的问题,记事本不是为那种类型的文件设计的。 – Compo

回答

0

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

Thx这将帮助我完成此工具。顺便说一下,你知道一种方法来做出这样的事情。 Var1 = Wmic Computername Var2 = C:\ .txt 我只想保存我检查过的计算机的文件名,如果可能的话。 –

+0

每台计算机的名称已经存在于一个环境变量'%COMPUTERNAME%'中,因此您可能可以将其并入您的输出文件名或路径。 – Compo

+0

非常感谢您。我已经把我的批量缩小了1-200个字符,应该更好。也感谢你'wmic bios得到'这也切断了一些不必要的命令等。 现在唯一的问题是,我不知道如何将文件保存到我们的网络文件夹之一,但我认为这只是一个与_ \\文件服务器\>文件夹与公共权利> _ 一个小窍门我可能需要像所有人一样给文件夹和读写权限到一个文件夹,所以我可以将其保存到该特定位置 –

相关问题