Эта программа расшифровки дает множество пропущенных ошибок оператора. Что случилось?

@echo off
setlocal EnableDelayedExpansion

::OS_sertificate
set code=494715842
set /p sertificate=input
set chars=0123456789abcdefghijklmnopqrstuvwxyz

for /L %%N in (10 1 36) do (

for /F %%C in ("!chars:~%%N,1!") do (

set /A math=%%N+%code%+2*2,74:2

for /F %%F in ("!math!") do (
set "sertificate=!sertificate:%%N=-%%C!"
)
)
)

for /F %%F in ("!sertificate!") do (

set "sertificate=!sertificate:-=!"

)


echo !sertificate!
pause>nul

1 ответ1

1

Ваша проблемная линия

set /A math=%%N+%code%+2*2,74:2

: не является допустимым оператором, поэтому SET интерпретирует его как переменную, которая должна содержать число. Поэтому SET видит номер числа без оператора между ними и выдает ошибку.

Я понятия не имею, что должна делать линия, поэтому я не могу предложить, как это исправить.

Одна вещь, которую вы можете изменить - SET /A может читать переменные напрямую без расширения. Таким образом, вы можете использовать code вместо %code% . Но это не решит вашу проблему.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .