Хорошо. Я избавился от большей части бесполезного кода и тут и там возился с ним, пытаясь выяснить, в чем проблема, и я думаю, что наконец нашел его:
Пакет Windows не может редактировать переменные, которые будут расширены, если они находятся внутри цикла FOR
.
Ex:
set /a x=1
Powershell Get-Clipboard> %temp%\ffmpeglist.txt
setlocal enableExtensions enableDelayedExpansion
for /F "delims=| tokens=*" %%A in (%temp%\ffmpeglist.txt) do (
set input[!x!]=%%A
call echo !input[%x%]!
set /a x += 1
)
endlocal
Ожидаемое поведение:
g:\videos\youtube1.mp4
g:\videos\youtube2.mp4
g:\videos\youtube3.mp4
g:\videos\youtube4.mp4
g:\videos\youtube5.mp4
Что я получаю:
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4
g:\videos\youtube1.mp4
Независимо от того, что я делаю, set /a x+= 1
не изменит значение x
.
Есть ли решения? Я открыт для всего.