Пожалуйста, попробуйте:)
@echo off
set "DataVar=Mike,Smith,123 Main St,Wallawalla,Washington"
set "VarNames=First,Last,Address,City,State"
for /f "tokens=1-5 delims=," %%a in ("%VarNames%") do (
for /f "tokens=1-5 delims=," %%i IN ("%DataVar%") DO (
echo %%a=%%i
echo %%b=%%j
echo %%c=%%k
echo %%d=%%l
echo %%e=%%m
)
)
Тщательно обратите внимание, что мы используем ,
в качестве разделителя, поэтому имя, фамилия и т. Д. Только отделяются друг от друга на ,
,По умолчанию разделители являются пробелами, но здесь мы вводим разделитель, поэтому пробелы становятся частью значения.Обратите внимание, что здесь это вообще не нужно, но если вам действительно нужно установить их как переменные, которые выглядят более читабельными, вы могли бы, но затем, когда вы захотите использовать их (echo и другие команды), вам нужно будет использовать delayedexpansion
Это могло бы закончиться примерно так:
@echo off
setlocal enabledelayedexpansion
set "DataVar=Mike,Smith,123 Main St,Wallawalla,Washington"
set "VarNames=First,Last,Address,City,State"
for /f "tokens=1-5 delims=," %%a in ("%VarNames%") do (
for /f "tokens=1-5 delims=," %%i IN ("%DataVar%") DO (
set %%a=%%i
set %%b=%%j
set %%c=%%k
set %%d=%%l
set %%e=%%m
)
:# you can echo each value, without having to know the variable name
echo !%%a! !%%b! !%%c! !%%d! !%%e!
:# or echo them as know variable names
echo !First! !Last! !Address! !City! !State!
)