programing

Windows 배치 파일에서 무한 루프를 만드는 방법은 무엇입니까?

closeapi 2023. 4. 26. 23:22
반응형

Windows 배치 파일에서 무한 루프를 만드는 방법은 무엇입니까?

이것이 기본적으로 제가 배치 파일에서 원하는 것입니다.아무 키나 눌러 "일시 중지"를 통과할 때마다 "작업 수행"을 다시 실행할 수 있습니다.

while(true){
    Do Stuff
    Pause
}

여기엔 오직 하나뿐인 것처럼 보입니다.for사용 가능한 루프 및 없음while일괄 루프.그럼 무한 루프를 만들려면 어떻게 해야 합니까?

좋은(?) 오래된 것을 사용하는 것은 어떻습니까?

:loop

echo Ooops

goto loop

더 유용한 예는 이 항목을 참조하십시오.

에서 사용할 수 있는 한 줄 명령의 무제한 루프cmd창:

FOR /L %N IN () DO @echo Oops

여기에 이미지 설명 입력

1부터 10까지 계산하고 0을 증분하는 정말 무한한 루프입니다.
10에 도달하려면 무한 또는 그 이상의 증분이 필요합니다.

for /L %%n in (1,0,10) do (
  echo do stuff
  rem ** can't be leaved with a goto (hangs)
  rem ** can't be stopped with exit /b (hangs)
  rem ** can be stopped with exit
  rem ** can be stopped with a syntax error
  call :stop
)

:stop
call :__stop 2>nul

:__stop
() creates a syntax error, quits the batch

이것은 정말 무한 루프가 필요할 때 유용할 수 있습니다. 왜냐하면 그것은 a보다 훨씬 빠르기 때문입니다.goto :loopfor-loop이 시작할 때 한 번만 캐시되기 때문에 버전입니다.

읽어주세요help GOTO

그리고 해보세요

:again
do it
goto again

다른 더 나은 방법:

:LOOP
timeout /T 1 /NOBREAK 
::pause or sleep x seconds also valid
call myLabel
if not ErrorLevel 1 goto :LOOP

이렇게 하면 오류도 처리할 수 있습니다.

다음은 루프를 사용하는 예입니다.

echo off
cls

:begin

set /P M=Input text to encode md5, press ENTER to exit: 
if %M%==%M1% goto end

echo.|set /p ="%M%" | openssl md5

set M1=%M%
Goto begin

이것은 Windows에서 메시지를 md5 해시로 암호화해야 할 때 사용하는 간단한 배치이며(열린 sl 필요), 프로그램은 Ctrl+C 또는 빈 입력을 제외하고는 충성스럽게 반복됩니다.

언급URL : https://stackoverflow.com/questions/5487473/how-to-create-an-infinite-loop-in-windows-batch-file

반응형