set /a n=1
for %%i in (*.mkv) do (
for %%j in ("A:\Downloads\AoD\AoD (%n%)\*.*") do (
mkvpropedit "%%i" --add-attachment "%%j"
)
set /a n+=1
)
Я хочу написать сценарий, который присоединяет содержимое n-й папки в "A:\Downloads\AoD\AoD (%n%)\*.*"
к n-й .mkv
. Вышеупомянутый сценарий не работал, потому что, очевидно, весь FOR l oop оценивается перед выполнением. Наткнувшись на этот вопрос , я переписал свой скрипт следующим образом:
setlocal enabledelayedexpansion
set /a n=1
for %%i in (*.mkv) do (
for %%j in ("A:\Downloads\AoD\AoD (!n!)\*.*") do (
mkvpropedit "%%i" --add-attachment "%%j"
)
set /a n+=1
)
endlocal
, но он почему-то все еще не работает. n
увеличивается, но, по-видимому, !n!
не интерпретируется как переменная, а скорее как строка !n!
, потому что это то, что мне сообщает cmd
B:\AoD try>(
for %j in ("A:\Downloads\AoD\AoD (!n!)\*.*") do (mkvpropedit "AoD (1).mkv" --add-attachment "%j" )
set /a n+=1
)
2
B:\AoD try>(
for %j in ("A:\Downloads\AoD\AoD (!n!)\*.*") do (mkvpropedit "AoD (2).mkv" --add-attachment "%j" )
set /a n+=1
)
3
B:\AoD try>endlocal
Этот результат от меня, использующего скрипт путем вставки это прямо в командную строку с одним %
s.