I'm aware that set zeroThroughNine=%Random%*9/32768
followed by echo %zeroThroughNine%
will produce a a random number between and including 0 and 9. But it seems the interpreter doesn't evaluate the contents of the variable every time it is called, and as such, echo %zeroThroughNine%
produces, for example, 7 every time.
I looked up a method for running commands using variables so that I could try to force it to work. I liked the question because it was very basal in its approach; something along the lines of "How can I run commands using variables?", tagged appropriately. I didn't much care for the answer because it was very narrow. The highest voted and selected answer was:
Simple. Just run
set commandVar=echo "Hello world."
, followed byecho %commandVar%
.
Of course the truth is that only works for the echo command. >: [
Anyway I'll stop complaining. This is what I've tried:
set zeroThroughNine=set /a number=%Random%*9/32768 & echo %number%
followed byecho %zeroThroughNine%
Unfortunately the & echo %number%
section of my SET command runs immediately, producing "%number%
" as output --and using echo %zeroThroughNine%
produces "set /a number=8436*9/32768
", for example, as output.
So two questions: How can I universally achieve running commands with the use of variables (or some alternative method), and perhaps more pressing, how can I achieve producing a new random number at the command line with each new command calling?