此解密程序出现大量缺失运算符错误。问题出在哪里?
@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
你的问题线是
set /A math=%%N+%code%+2*2,74:2
:
不是有效的运算符,因此 SET 将其解释为应包含数字的变量。因此 SET 认为数字是 number ,而它们之间没有运算符,因此会引发错误。
我不知道这条线应该做什么,所以我无法建议如何修复它。
您可以更改的一件事是 SET /A 可以直接读取变量而无需扩展。因此您可以使用code
而不是%code%
。但这并不能解决您的问题。