Вот пример строки, которая должна работать так, как вам нужно:
@Set /A "roll=(%random%%%100)+1" & SetLocal EnableDelayedExpansion & If !roll! GEq 56 (EndLocal & Set "size=Small Town" & Set "shortsize=town") Else EndLocal & Set "size=Big Town" & Set "shortsize=btwn"
Очевидно, что вы отрегулируете Else
, как требуется, (я только что сделал это)!
[Test /]
@Set /A "roll=(%random%%%100)+1" & SetLocal EnableDelayedExpansion & If !roll! GEq 56 (EndLocal & Set "size=Small Town" & Set "shortsize=town") Else EndLocal & Set "size=Big Town" & Set "shortsize=btwn"
@Set roll
@Set size
@Set shortsize
@Pause
[Edit /]
… и просто чтобы показать вам, как вы недавно добавили, (через редактирование) , более полный сценарий будет выглядеть так:
@Echo Off
:TownSize
Set /A "roll=(%RANDOM% %% 100) + 1"
If %roll% LEq 5 (Set "size=Thorp" & Set "shortsize=thorp" & Set /A "population=((%RANDOM% %% 20) + 2), sizemod=0")
If %roll% GEq 6 (Set "size=Hamlet" & Set "shortsize=hamlet" & Set /A "population=((%RANDOM% %% 20) + 2) + 50, sizemod=1")
If %roll% GEq 11 (Set "size=Village" & Set "shortsize=village" & Set /A "population=((%RANDOM% %% 8) + 2) + 200, sizemod=2")
If %roll% GEq 56 (Set "size=Small Town" & Set "shortsize=town" & Set /A "population=((%RANDOM% %% 8) + 2) + 200, sizemod=3")
If %roll% GEq 66 (Set "size=Medium Town" & Set /A "population=((%RANDOM% %% 100) + 10) + 1000, sizemod=4")
If %roll% GEq 76 (Set "size=Large Town" & Set /A "population=(((%RANDOM% %% 6) + 1) * 500) + 2000, sizemod=5")
If %roll% GEq 86 (Set "size=Small City" & Set "shortsize=city" & Set /A "population=(((%RANDOM% %% 6) + 1) * 500) + 5000, sizemod=6")
If %roll% GEq 96 (Set "size=Medium City" & Set /A "population=(((%RANDOM% %% 6) + 1) * 500) + 7000, sizemod=7")
If %roll% Equ 99 (Set "size=Large City" & Set /A "population=(((%RANDOM% %% 15) + 2) * 1000) + 10000, sizemod=8")
If %roll% Equ 100 (Set "size=Metropolis" & Set "shortsize=metropolis" & Set /A "population=(((%RANDOM% %% 10) + 1) * 25000) + 125000, sizemod=9")
Rem Test the results
(Echo %%roll%%=%roll%, %%size%%=%size%, %%shortsize%%=%shortsize%, %%population%%=%population%, %%sizemod%%=%sizemod% & Pause)
Set /A "roll=((%RANDOM% %% 100) + 1) + sizemod"
If %roll% GEq 100 Set "popden=55k psm"
If %roll% Lss 100 Set "popden=who are crammed into extremely close quarters"
If %roll% Lss 98 Set "popden=living in quite a dense urban environment"
If %roll% Lss 91 Set "popden=living in a fairly dence urban environment"
If %roll% Lss 81 Set "popden=with each having enough space to be comfortable"
If %roll% Lss 21 Set "popden=who enjoy fairly spacious yards"
If %roll% Lss 11 Set "popden=who enjoy extremely spacious dwellings and yards"
If %roll% Lss 3 Set "popden=who definitely prefer their personal space, given the distance between dwellings"
If %roll% Equ 1 Set "popden=spread out almost unnaturaly far from one another"
Rem Test the results
(Echo %%roll%%=%roll%, %%popden%%=%popden% & Pause)
GoTo :EOF
Пожалуйста, помните, что при тестировании нужно проверять только то, что я предоставил. Все, что добавлено или изменено за пределами этого кода, не является частью моего ответа.