การหายไปของข้อผิดพลาดของตัวดำเนินการในชุดถอดรหัสของฉัน


0

โปรแกรมถอดรหัสนี้ให้โหลดข้อผิดพลาดของตัวดำเนินการที่หายไป เกิดอะไรขึ้น?

@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 จะเห็นหมายเลขโดยไม่มีตัวดำเนินการระหว่างพวกเขาและทำให้เกิดข้อผิดพลาด

ฉันไม่รู้ว่าควรจะทำอย่างไรดังนั้นฉันจึงไม่สามารถแนะนำวิธีการแก้ไขได้

สิ่งหนึ่งที่คุณสามารถเปลี่ยนได้ - SET / A สามารถอ่านตัวแปรได้โดยตรงโดยไม่ต้องขยาย ดังนั้นคุณจึงสามารถใช้แทนcode %code%แต่นั่นจะไม่แก้ปัญหาของคุณ


มันควรจะแบ่ง ฉันไม่เคยใช้ set / a มากเกินไปดังนั้นมันจึงเป็น kinda random code: / แต่ขอบคุณที่ช่วยฉันมาก
builder_247
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.