Batch file 如何将包含多个命令的.bat文件的输出结果自定义为单个txt文件

Batch file 如何将包含多个命令的.bat文件的输出结果自定义为单个txt文件,batch-file,Batch File,嗨,我需要有这个bat文件的结果是在一个单独的.txt或.csv文件与相关的标题 该文件运行得很好,但只有在输出到单个文件时,我才能使其有意义。 我们将感激您的帮助或建议 @echo off MD\"PC Details" hostname>>C:\"PC Details"\PC_HostName.txt wmic csproduct get name >>C:\"PC Details"\Model.txt wmic bios get serialnumber >

嗨,我需要有这个bat文件的结果是在一个单独的.txt或.csv文件与相关的标题

该文件运行得很好,但只有在输出到单个文件时,我才能使其有意义。 我们将感激您的帮助或建议

@echo off

MD\"PC Details"
hostname>>C:\"PC Details"\PC_HostName.txt
wmic csproduct get name >>C:\"PC Details"\Model.txt
wmic bios get serialnumber >>C:\"PC Details"\PC_SerialNo.txt
wmic diskdrive get model >>C:\"PC Details"\HDD.txt
wmic path win32_physicalmedia get SerialNumber >>C:\"PC Details"\HDD_SerialNo.txt

end

您可以将每行的输出重定向到同一个文件,并使用
ECHO
在输出文件的各个部分之间放置分隔符或标题

像这样的

@echo off

MD\"PC Details"
ECHO --- HOSTNAME SECTION>>"C:\PC Details\Details.txt"
hostname>>"C:\PC Details\Details.txt"
ECHO ---------------------------------------------->>"C:\PC Details\Details.txt"
ECHO --- WMIC CSPRODUCT SECTION>>"C:\PC Details\Details.txt"
wmic csproduct get name>>"C:\PC Details\Details.txt"
ECHO ---------------------------------------------->>"C:\PC Details\Details.txt"
ECHO --- WMIC BIOS SECTION>>"C:\PC Details\Details.txt"
wmic bios get serialnumber>>"C:\PC Details\Details.txt"
ECHO ---------------------------------------------->>"C:\PC Details\Details.txt"
ECHO --- WMIC DISKDRIVE SECTION>>"C:\PC Details\Details.txt"
wmic diskdrive get model>>"C:\PC Details\Details.txt"
ECHO ---------------------------------------------->>"C:\PC Details\Details.txt"
ECHO --- WMIC PHYSICALMEDIA SECTION>>"C:\PC Details\Details.txt"
wmic path win32_physicalmedia get SerialNumber>>"C:\PC Details\Details.txt"
ECHO ---------------------------------------------->>"C:\PC Details\Details.txt"

试着用这个。将“您的标题”更改为您选择的标题

@echo off
set outputfile="C:\PC Details\Details.txt"
MD\"PC Details"
echo YOUR_TITLE>>%outputfile%
hostname>>%outputfile%
echo YOUR_TITLE>>%outputfile%
wmic csproduct get name>>%outputfile%
echo YOUR_TITLE>>%outputfile%
wmic bios get serialnumber>>%outputfile%
echo YOUR_TITLE>>%outputfile%
wmic diskdrive get model>>%outputfile%
echo YOUR_TITLE>>%outputfile%
wmic path win32_physicalmedia get SerialNumber>>%outputfile%
goto :eof

为什么不能将每行的输出重定向到同一个文件?格式不存在,而且我不知道如何使headersWMIC有很多输出格式选项。请尝试
wmic csproduct get name/format:csv
了解我的意思。是它们的列表。另外,
wmic csproduct get name/value
可能会为您提供更好的输出。我猜这里的关键是,您希望输出是什么样的?编辑您的文章并显示所需的输出。非常感谢您的建议,到目前为止,我觉得我现在走的方向是正确的,好的,标题标题在列表中起作用,但命令的结果不起作用,也许我遗漏了一些明显的内容?请在
set outputfile
中使用引号。现在,它只是看到
C:\PC
而且wmic csproduct get name/value可能会给您提供更好的输出–Stephan 17小时前:这肯定是我需要的,如果我可以在这里问的话,我现在还有几个问题,:我需要获取机器的主机名,无论我做什么,我都无法让它完成(正如你已经猜到的,我根本不是bat文件的专家)另外,我得到了两个extr序列号行,它们是空的,有什么想法吗?你应该把它们放在一个单独的问题中,但是对于主机名,你可以使用Line1:set host=%COMPUTERNAME%Line2:echo%host%非常感谢所有提出建议的人,我想我终于做到了。除了主机名间距输出格式,我还有我想要的ed这是我完成的bat文件:@echo off MD \“PC详细信息”wmic nicconfig get DNSHostName>>C:\“PC详细信息”\PC\u Details.txt wmic csproduct get name/value>>C:\“PC详细信息”\PC\u Details.txt wmic diskdrive get model/value>>C:\“PC详细信息”\PC_Details.txt wmic路径win32_physicalmedia get SerialNumber/value>>C:\“PC详细信息”\PC_Details.txt结束