1
有人能告訴我爲什麼下面的心不是工作...delims和GOTO不工作(批)
:PHASE_ONE
SET /P input_text= ENTER PASSWORD:
for /f "delims=1234567890" %%A in ("%input_text%") GOTO PHASE_ONE
我試着去避免數值
有人能告訴我爲什麼下面的心不是工作...delims和GOTO不工作(批)
:PHASE_ONE
SET /P input_text= ENTER PASSWORD:
for /f "delims=1234567890" %%A in ("%input_text%") GOTO PHASE_ONE
我試着去避免數值
你的語法是錯誤的。您在GOTO
之前缺少DO
。
但是,您的邏輯也是錯誤的方式 - 您確實確保密碼只能是數字。
下面將其限制爲字母,例如:
@ECHO OFF
:PHASE_ONE
SET /P input_text= ENTER PASSWORD:
for /f "delims=abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ" %%A in ("%input_text%") DO GOTO PHASE_ONE
ECHO.
但是,你會使用FINDSTR
命令,像這樣會更好:
@ECHO OFF
:PHASE_ONE
SET /P input_text= ENTER PASSWORD:
ECHO %input_text% | FINDSTR /I /R [0-9][0-9]*
REM If Errorlevel is 1, then no matching string has been found,
REM so we have a valid password (i.e. non-numeric).
IF ERRORLEVEL 1 GOTO Passed
GOTO PHASE_ONE
:Passed
ECHO Hooray - your password is fine.
我不enougth批次附近做(我在autocad中自動創建autolisp,最近出現了一些模糊的問題) –
我已經添加了'FINDSTR'替代方法,它使用正則表達式來計算密碼是否正確。它更乾淨。 –