Hello,
Haven't been on in a while, but ran into a problem today and must be hitting a mental block or something, because I can't see what I'm doing wrong.
The following code is trying to populate a csv file with some names and statuses. For whatever reason, the embedded variables do not set like they should. What am I doing wrong?
@echo off
cls
setlocal enabledelayedexpansion
for /f "tokens=1,2*" %%A in (Alpha.txt) do (
call :subAlpha %%A %%B
)
goto :eof
:subAlpha
set lname=%1
set lname=%lname:,=%
for /f "tokens=*" %%i in ('trim.bat %lname%') do set lname=%%i
set fname=%2
set fname=%fname:-=%
for /f "tokens=*" %%j in ('trim.bat %fname%') do set fname=%%j
set a43check=-
set d75check=-
for /f "tokens=1,2*" %%E in (A43.txt) do (
call :sub43 %%E %%F
)
for /f "tokens=1,2*" %%J in (D75.txt) do (
call :sub75 %%J %%K
)
echo fname = %fname%
echo lname = %lname%
echo a43fname = %a43fname%
echo a43lname = %a43lname%
echo d75fname = %d75fname%
echo d75lname = %d75lname%
pause
echo "%lname%, %fname%", %a43check%, %d75check% >> revalidate.csv
goto :eof
:sub43
set a43lname=%1
set a43lname=%a43lname:,=%
for /f "tokens=*" %%k in ('trim.bat %%a43lname%%') do set a43lname=%%k
set a43fname=%2
set a43fname=%a43fname:-=%
for /f "tokens=*" %%l in ('trim.bat %a43fname%') do set a43fname=%%l
if "%lname%"=="%a43lname%" (
if "%fname%"=="%a43fname%" (
set a43check=X
)
)
goto :eof
:sub75
set d75lname=%1
set d75lname=%d75lname:,=%
for /f "tokens=*" %%m in ('trim.bat %d75lname%') do set d75lname=%%m
set d75fname=%2
set d75fname=%d75fname:-=%
for /f "tokens=*" %%n in ('trim.bat %d75fname%') do set d75fname=%%n
if "%lname%"=="%d75lname%" (
if "%fname%"=="%d75fname%" (
set d75check=X
)
)
goto :eof
trim.bat
@echo off
set trim=%1
:backloop
if "%trim:~-1,1%"==" " (
set trim=%trim:~0,-1%
goto backloop
)
:frontloop
if "%trim:~0,1%"==" " (
set trim=%trim:~1%
goto frontloop
)
echo %trim%