Моя цель - загрузить текстовый файл в глобальный массив, и этот файл содержит восклицательные знаки. Я хочу затем отсортировать массив пузырьком и сохранить содержимое в новый файл. К сожалению, я даже не могу получить данные о загрузке в массив. Я пробовал использовать циклы for, но кажется, что отложенное расширение необходимо и не нужно. Конечно, любые переменные внутри циклов являются локальными переменными из-за команды setlocal, верно? Таким образом, как только достигается endlocal (для переключения отложенного расширения), область действия исчезает. Я думал, что мне нужно, чтобы массив был глобальным, чтобы я мог продолжить манипулировать им позже. (Я пытался добавить команды set в конце endlocal для передачи локальных значений в более высокую область, но мои попытки ни к чему не привели.)
setlocal enabledelayedexpansion
set /a count=0
set "file=list.txt"
echo Extracting titles and IDs...
for /f "usebackq delims=; tokens=1,2* skip=1" %%a in ("%file%") do (
set /a count+=1
setlocal disabledelayedexpansion
set "title=%%b"
set "gameid=%%a"
setlocal enabledelayedexpansion
for /f "delims=- tokens=1,2*" %%x in ("!gameid!") do (
echo %%y %%x "!title!"
set "entry[!count!]=%%y %%x !title!"
echo %count% - !count!
)
endlocal
endlocal
)
pause
Входной файл выглядит так:
ID;Title;Other;Headings;We;Dont;Need
ABC-456;My second game ever! Even better!;foo;bar;blah;blah;blah
XYZ-123;My first game ever! Yes!;foo;bar;blah;blah;blah
Моя конечная цель - создать файл в форме
123 XYZ "My first game ever! Yes!"
456 ABC "My second game ever! Even better!"
после сортировки по числовым значениям. Если бы кто-то мог помочь просто пройти первую часть (загрузка данных в массив), это было бы очень полезно.