2014-12-09 4 views
1

그래서 내 코드로 시작하자 :BATCH - % 랜덤 % 루프

:Matrix 
set /p matrixQ=Are you ready?(Y/N): 
if %matrixQ%==Y goto startingMatrix 
goto restart 
:startingMatrix 
set /p loopAmount=How many echos do you want? We recomend 100: 
color 2 
goto logic 
:logic 
set counter=0 
if %loopAmount% LSS %counter% (goto tricks) 
color 0 
pause 
goto restart 
:tricks 
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random% 
%counter%+=1 
goto logic 

그래서 내가 뭘하려고하면 %random% 수 시간의 사용자 입력 양을 인쇄 전용입니다. 나는 성공없이 For 루프로 시도했다. 그래서 어떤 이유로 든 녹색으로 설정되고 다시 :restart 레이블로 시작 부분으로 건너 뜁니다. %loopAmount%%counter%보다 작은 지 확인하기 위해 if 문을 사용하지 않는 이유에 대한 단서가 전혀 없습니다.

도와 주시면 감사하겠습니다.

  • Sa'id K.는

답변

1

카운터는 항상 있기 때문에 스크립트에서 설정 곳의 0이 될 것입니다. counter 및 loopAmount 변수를 대치했습니다. 카운터가 loopAmount보다 작은 지 확인해야합니다. 또한 카운터를 올바르게 증가 시키려면 set 명령을 사용해야합니다.

:Matrix 
set /p matrixQ=Are you ready?(Y/N): 
if %matrixQ%==Y goto startingMatrix 
goto restart 
:startingMatrix 
set /p loopAmount=How many echos do you want? We recomend 100: 
set counter=0 
color 2 
goto logic 
:logic 
if %loopAmount% GTR %counter% (goto tricks) 
color 0 
pause 
goto restart 
:tricks 
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random% 
set /a counter=%counter%+1 
goto logic 
+0

오, 감사합니다. 나는 if 문과 설정 모두에 문제가 있음을 알고있었습니다. 나는'set/[letter]'를 언제, 어떻게 사용해야하는지 명확하게 설명하는 페이지를 찾지 못하는 것 같습니다. 다시 말씀 드리겠습니다. – Scoutdrago3

+2

http://ss64.com/nt/는 기본을위한 훌륭한 리소스입니다. – SomethingDark

+0

감사합니다. 불량을 확인하십시오. – Scoutdrago3

0

는 스크립트에 몇 가지 문제가 있습니다

    귀하의 카운터와 loopAmount은 반전된다
  1. 하여 비교
  2. 산술 세트/a를
  3. 다시 시작을
  4. 를 정의하지 않았다 (GPT)를
  5. 카운터를 0으로 재설정합니다.

아래 코드가 작동합니다.

:restart 
set /p matrixQ=Are you ready?(Y/N): 
if %matrixQ%==Y goto startingMatrix 
goto restart 
:startingMatrix 
set /p loopAmount=How many echos do you want? We recomend 100: 
color 2 
goto logic 
:logic 
set counter=0 
:loop 
if %counter% LSS %loopAmount% (goto tricks) 
color 0 
pause 
goto restart 
:tricks 
echo %random%%random%%random%%random%%random%%random%%random%%random%%random%%random%%random% 
set/a counter=%counter% + 1 
goto loop 
+0

입력 해 주셔서 감사합니다. 나는 그것을 전부 고쳤다 :) – Scoutdrago3