行情報が実際にファイルにあると仮定し、値にスペースが含まれていないと仮定します。
@echo off
call :getValue 2 Column2 "Example.txt"
call :getValue 1 Column3 "Example.txt"
call :getValue 0 Column1 "Example.txt"
call :getValue 1 DoesNotExist "Example.txt"
exit /b
:getValue
setlocal
<%3 set /p "header="
set token=0
for %%C in (%header%) do (
set /a token+=1
if %%C==%2 goto columnFound
)
echo Column %2 not found in %3
exit /b
:columnFound
for /f "tokens=%token%" %%A in ('findstr /blc:"%1 " %3') do (
echo %3 (Row=%1, %2^) = %%A
exit /b
)
echo Row %1 not found in %3
exit /b
結果
"Example.txt" (Row=2, Column2) = eee
"Example.txt" (Row=1, Column3) = ccc
Row 0 not found in "Example.txt"
Column DoesNotExist not found in "Example.txt"