배치 스크립트에서 "setlocal enabledelaydexpansions"를 설정 한 후 "최대 재귀 깊이 초과"오류가 발생합니다. 이미 http://ss64.com/nt/setlocal.html을 읽었지만이 문제를 해결하는 방법을 알 수 없습니다. 다음은이 문제를 일으키는 스크립트입니다.최대 재귀 깊이가 setlocal enabledelayedexpansion에 의해 초과 되었습니까? (BATCH)
.
.....
:MESSAGE
set /p "message=Message:"
setlocal enabledelayedexpansion
:ANALYSIS
if "%message%"=="%spam%" (
set /a counter=%counter% + 1
if !counter! GTR 2 (
goto :SPAM
) ELSE (
GOTO OK
)
) ELSE (
set counter=0
GOTO OK
)
:SPAM
echo.
echo stop spamming
echo.
GOTO MESSAGE
:OK
set "spam=%message%"
...
..
.
이 스크립트 모듈 다음에 "setlocal disabledelayedexpansion", "endlocal"을 설정하려고했지만 행운이 없습니다. 바라건대 내가 만든 작은 오류 일뿐입니다.
는 편집 :.이
예이 작업을 보이지만, 지금은 느낌표를 사용할 수 없습니다 :( 나는이 때문에 % 메시지 %에 들어가기 전에 disabledelayedexpansion을 설정
또한 지금 보았다 이 스크립트는 더 많은 문제를 일으킨다 고 생각합니다. ^!를 입력하면 스크립트에서 나중에 정의되는 % message % 변수의 값이 나타납니다. ^^!를 입력하면 % message %를 변경하는 다음 항목이 나타납니다. :
REM Bad word filter with Format change for catching mutated vowels
chcp 1252>nul
SET before=%message%
SET message=%before:fuck=XXXXX%
SET before=%message%
SET message=%before:loser=XXXXX%
chcp 850>nul
^! 나를 전에 준다 : 씨발
^^! 나에게 전에 준다 : 패자