2015-03-29 2 views
0

Ok, так что этот вопрос у меня включает CMD сценариев и это:ПАРТИЯ Для цикла генерации случайных чисел

DIR /A-D /B /S > DIR.DAT 
FOR /F "TOKENS=*" %%I IN (DIR.DAT) DO (
    CALL :DICEROLL 

    IF %NUMBER%==0 (
    ECHO BOOM BADDA BOOM 
) ELSE (
    ECHO %NUMBER% 
) 
) 
:DICEROLL 
SET /A NUMBER=%RANDOM% %% 16 

Когда я запускаю файл я получаю вещи, как это:

15 
15 
15 
15 

Вместо этого о том, что я хотел что было бы что-то вроде этого:

14 
0 
8 
10 

Я просто очень смущен о том, почему его не генерации случайных чисел для каждого строка текста, через которую проходит. Вместо этого он кажется только эховым первым сгенерированным номером. Любая помощь будет очень признательна и извините, если это сбивает с толку. Я не очень хорошо разбираюсь в своих проблемах и в первый раз на одном из этих сайтов в целом.

ответ

1

Переменные окружения расширены до запуска цикла. Чтобы исправить это, вы можете использовать задержанное расширение: !RANDOM!, но оно работает, только если вы включили его, выполнив setlocal enabledelayexpansion, или запустили cmd с cmd /v.

Смежные вопросы