중단 된 루프


1

루프가 중단 된 배치 파일을 어떻게 만들 수 있습니까? momen에서 나는 이것을하는 일종의 행렬 느낌을 가진 파일을 가지고 있습니다 ...

:start

echo %random%%random%%random%%random%

goto start

하지만 너무 화면에 clr표시하고 느낌표를 표시하면 오류 유형 거래와 같은 느낌표가 표시됩니다.

:start

echo !!!!!!!!!!...etc

goto start

그러나 어떻게 그런 인터럽트 루프를 만들 수 있습니까?

.. 너무 조금 새로 워진 것이므로 각 줄의 설명 영역에서 조금 더 특별한 치료에 감사드립니다. 감사 :)..


루프를 방해하는 것은 무엇입니까? 에코를 멈출 때를 어떻게 알 수 있습니까? 나는 어떤 조건이 만들어지지 않으면 계속 진행되는 루프를 원한다고 가정합니다. 더 잘 시각화 할 수 있도록 설명해주세요.
Pimp Juice IT

답변:


2

귀하의 질문은 다소 불분명하지만 프로그램이 임의의 시간에 오류를 표시하기를 원한다고 가정합니다. 이를 위해 난수 생성기를 사용할 수 있습니다.

set /a rndm=%random% * 10 / 32768 + 1

이 코드는 "rndm"이라는 변수를 생성합니다 (rndm이라고 할 필요는 없습니다. 원하는대로 이름을 지정할 수 있습니다). 1과 10 사이의 임의의 숫자입니다. 가능한 더 크거나 작은 풀을 원할 경우 숫자의 경우 코드의 10을 원하는대로 변경할 수 있습니다. 따라서 1에서 3 사이의 임의의 숫자를 원하면 다음과 같이하십시오.

set /a rndm=%random% * 3 /32768 + 1

이를 사용하여 임의의 오류가 발생할 가능성이 있습니다. 1/10의 루프를 종료하고 화면을 지우고 다른 루프를 입력하려는 경우 코드는 다음과 같습니다.

@echo off :start echo %random%%random%%random%%random% set /a rndm=%random% * 10 / 32768 + 1 if %rndm% == 1 goto errorstart goto start :errorstart cls :error echo !!!!!!!!!!!! goto error

루프가 실행되는 동안 프로그램은 1과 10 사이의 난수를 생성합니다. 그 직후에 생성 된 번호가 1인지 확인합니다. 1이 아닌 경우 루프가 계속됩니다. 그렇다면 "errorstart"레이블로 이동합니다. errorstart 레이블 아래의 명령은 화면을 지 웁니다. 그런 다음 프로그램은 오류 루프에 들어가 프로그램이 닫힐 때까지 느낌표를 표시합니다.

이 코드를 사용하면 원하는 효과를 얻을 수 있지만 10 분의 1은 프로그램이 빠르게 작동 할 가능성이 너무 높으므로 1000에서 1로 또는 10.000에서 1로 변경할 수 있습니다. 그러면 보조 루프가 시작되기 전에 초기 루프가 더 오래 지속됩니다.


이것이 효과가 있습니까? 식에 괄호가 있어야합니다 (예 :) SET /a _rand=(%RANDOM%*10/32768)+1. ss64.com/nt/syntax-random.html
DavidPostill을

굉장하고 정확하게 내가 원하는 것이지만 32768 + 1 서버는 어떤 목적이며 어떤 용도입니까?
Xaxis

예,이 프로그램은 실제로 제대로 작동하지 않습니다. 주로 숫자로 되돌아가 1 초 정도마다 깜박 거리는 것과 같은 id 때문입니다.
Xaxis

@Xaxis 늦은 응답에 대해 죄송하지만 프로그램이 첫 번째 루프로 돌아가려면 첫 번째 루프를 종료하는 코드와 비슷한 것을 두 번째 루프로 구현할 수 있습니다. 주로 복사 붙여 넣기 및 일부 점프 플래그를 바꿉니다.
ICan'tDecideOnAName
당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.