Windows Batch System Info to HTML

batch-file, html, operating-system, system-information

Solution

It all depends on how fancy you want to get. The simplest way would be

@echo off
(
echo ^<HTML^> 
echo ^<BODY^> 
echo ^<pre^> 
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"OS Manufacturer" /C:"OS Configuration" /C:"OS Build Type" /C:"Original Install Date" /C:"System Boot Time" /C:"System Manufacturer" /C:"System Model" /C:"System Type" /C:"Processor(s)" /C:"BIOS Version" /C:"Windows Directory" /C:"System Directory" /C:"Boot Device" /C:"System Locale" /C:"Input Locale" /C:"Total Physical Memory" /C:"Available Physical Memory" /C:"Virtual Memory: Max Size" /C:"Virtual Memory: Available" /C:"Virtual Memory: In Use" /C:"Domain" /C:"Network Card(s)"
echo ^</pre^> 
echo ^</BODY^> 
echo ^</HTML^>
)>sysinfo.html

And here is a way with a CSS formatted table

@echo off
systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"OS Manufacturer" /C:"OS Configuration" /C:"OS Build Type" /C:"Original Install Date" /C:"System Boot Time" /C:"System Manufacturer" /C:"System Model" /C:"System Type" /C:"Processor(s)" /C:"BIOS Version" /C:"Windows Directory" /C:"System Directory" /C:"Boot Device" /C:"System Locale" /C:"Input Locale" /C:"Total Physical Memory" /C:"Available Physical Memory" /C:"Virtual Memory: Max Size" /C:"Virtual Memory: Available" /C:"Virtual Memory: In Use" /C:"Domain" /C:"Network Card(s)">temp.txt
if exist systeminfo.html del /f /q systeminfo.html
call :CreateHTMLtable temp.txt systeminfo.html
if exist temp.txt del /f /q temp.txt
exit /b

:CreateHTMLTable <inputfile> <outputfile>
setlocal
>%2 echo ^<!DOCTYPE HTML PUBLIC 
>>%2 echo "-//W3C//DTD HTML 4.01 Transitional//EN"
>>%2 echo  "http://www.w3.org/TR/1999/REC-html401-19991224/loose.dtd"^>
>>%2 echo ^<HTML^>
>>%2 echo ^<HEAD^>
>>%2 echo ^<META HTTP-EQUIV="Content-Type" 
>>%2 echo CONTENT="text/html; charset=utf-8"^>
>>%2 echo ^</HEAD^>
>>%2 echo ^<BODY^>
>>%2 echo ^<style type="text/css"^>
>>%2 echo .tftable {font-size:12px;color:#333333;width:100%;border-width: 1px;border-color: #bcaf91;border-collapse: collapse;}
>>%2 echo .tftable th {font-size:12px;background-color:#ded0b0;border-width: 1px;padding: 8px;border-style: solid;border-color: #bcaf91;text-align:left;}
>>%2 echo .tftable tr {background-color:#e9dbbb;}
>>%2 echo .tftable td {font-size:12px;border-width: 1px;padding: 8px;border-style: solid;border-color: #bcaf91;}
>>%2 echo .tftable tr:hover {background-color:#ffffff;}
>>%2 echo ^</style^>
>>%2 echo ^<table class="tftable" border="1"^>
for /f "tokens=1,2 delims=:" %%a in (%1) do (
>>%2 echo ^<tr^>^<td^>%%a^</td^>^<td^>%%b^</td^>^</tr^>
)
>>%2 echo ^</table^>
>>%2 echo ^</BODY^>
>>%2 echo ^</HTML^>

Problem

I am trying to create a batch file that will use the systeminfo command to put things such as the OS, domain currently logged onto, manufacture, computer model, etc. into an HTML table. This is the contents of my current batch file: ``` @echo off systeminfo | findstr /B /C:"OS Name" /C:"OS Version" /C:"OS Manufacturer" /C:"OS Configuration" /C:"OS Build Type" /C:"Original Install Date" /C:"System Boot Time" /C:"System Manufacturer" /C:"System Model" /C:"System Type" /C:"Processor(s)" /C:"BIOS Version" /C:"Windows Directory" /C:"System Directory" /C:"Boot Device" /C:"System Locale" /C:"Input Locale" /C:"Total Physical Memory" /C:"Available Physical Memory" /C:"Virtual Memory: Max Size" /C:"Virtual Memory: Available" /C:"Virtual Memory: In Use" /C:"Domain" /C:"Network Card(s)" pause ``` This is the current output: ``` OS Name: Microsoft Windows 7 Professional OS Version: 6.1.7601 Service Pack 1 Build 7601 Original Install Date: 7/26/2011, 1:47:23 AM System Boot Time: 2/25/2014, 1:39:14 AM System Manufacturer: Dell Inc. System Model: Inspiron 1501 System Type: X86-based PC Processor(s): 1 Processor(s) Installed. Domain: WORKGROUP Press any key to continue . . . ``` How can I put this into a HTML table? Any help would be greatly appreciated! Thanks.

Original source

Related problems