For anyone interested, this question is a follow up to Text output placement, and the code is from my updated answer to that question.
My code had some serious bugs, which have all been fixed below. I think the code is now actually simpler.
@echo off
setlocal enableDelayedExpansion
:: Clear any existing $ variables
for /f "delims==" %%A in ('"set $ 2>nul"') do set "%%A="
:: Define column widths
set "width=8"
set "labelWidth=22"
:: Define summary rows and their order, must start order at 2 and cannot exceed 9
set "lookup= FreePhysicalMemory:2 TotalVisibleMemorySize:3 CPULoadPercentage:4"
:: Initialize some needed values
set "blank= "
set "null=%blank%NULL"
set "null=!null:~-%width%!"
set "nulls="
set "lineWidth=0"
:: Load data
for %%F in (server1.txt server2.txt server3.txt server4.txt) do (
set "val=%blank%%%~nF"
set "$0.OPERATINGSYSTEM=!$0.OPERATINGSYSTEM! !val:~-%width%!"
for /f "tokens=1,2" %%A in (%%F) do (
set "test=!lookup:* %%A:=!"
if "!test!" equ "!lookup!" (set "prefix=$1.") else set "prefix=$!test:~0,1!."
for %%P in (!prefix!) do for %%L in (!lineWidth!) do (
set "%%P%%A=!%%P%%A!!nulls!"
if defined %%P%%A set "%%P%%A=!%%P%%A:~0,%%L!"
set "val=%blank%%%B"
set "%%P%%A=!%%P%%A! !val:~-%width%!"
)
)
set /a lineWidth+=width+1
set "nulls=!nulls! !null!"
)
:: Print results
(for /f "tokens=2* delims=.=" %%A in ('set $') do (
set "line=%%B!nulls!"
set "label=%%A%blank%"
echo !label:~0,%labelWidth%!!line:~0,%lineWidth%!
))>output.txt