How to reduce value of variable in batch?
I need to reduce value of variable by 3 but it says Missing operand
:(1-3)
set /p speed=">> "
if %speed% geq 4 goto duzo
if %speed% leq 0 goto malo
set x=4
set /a x==%x%-%speed%
I tried that too:
set /a speed==4-%speed%
Edit:
Now I have a problem with
choice
comand. I'm using windows 10. When I'm adding for example
echo Do you want to try again?
choice /t 10 /c yn /d n
program stops as it comes and I cannot do anything to it
batch-file windows-10
|
show 1 more comment
I need to reduce value of variable by 3 but it says Missing operand
:(1-3)
set /p speed=">> "
if %speed% geq 4 goto duzo
if %speed% leq 0 goto malo
set x=4
set /a x==%x%-%speed%
I tried that too:
set /a speed==4-%speed%
Edit:
Now I have a problem with
choice
comand. I'm using windows 10. When I'm adding for example
echo Do you want to try again?
choice /t 10 /c yn /d n
program stops as it comes and I cannot do anything to it
batch-file windows-10
1
Nowhere in the help file for theSET
command does it say that a double equals is a valid operator. Where did you find this example on the Internet? You can simplify the assignment like this:set /a speed-=4
.
– Squashman
Jan 2 at 17:46
There's no problem with your choice command, and tested on win10 it's okay.
– Tiw
Jan 4 at 3:22
Okay now it's working
– maxmarsz
Jan 4 at 5:30
I think you need to use big letters in arguments
– maxmarsz
Jan 4 at 5:31
@maxmarsz What did you do to make it working? I just copied your lower case command and it worked fine.
– Tiw
Jan 5 at 3:30
|
show 1 more comment
I need to reduce value of variable by 3 but it says Missing operand
:(1-3)
set /p speed=">> "
if %speed% geq 4 goto duzo
if %speed% leq 0 goto malo
set x=4
set /a x==%x%-%speed%
I tried that too:
set /a speed==4-%speed%
Edit:
Now I have a problem with
choice
comand. I'm using windows 10. When I'm adding for example
echo Do you want to try again?
choice /t 10 /c yn /d n
program stops as it comes and I cannot do anything to it
batch-file windows-10
I need to reduce value of variable by 3 but it says Missing operand
:(1-3)
set /p speed=">> "
if %speed% geq 4 goto duzo
if %speed% leq 0 goto malo
set x=4
set /a x==%x%-%speed%
I tried that too:
set /a speed==4-%speed%
Edit:
Now I have a problem with
choice
comand. I'm using windows 10. When I'm adding for example
echo Do you want to try again?
choice /t 10 /c yn /d n
program stops as it comes and I cannot do anything to it
batch-file windows-10
batch-file windows-10
edited Jan 3 at 6:52
maxmarsz
asked Jan 2 at 16:47
maxmarszmaxmarsz
285
285
1
Nowhere in the help file for theSET
command does it say that a double equals is a valid operator. Where did you find this example on the Internet? You can simplify the assignment like this:set /a speed-=4
.
– Squashman
Jan 2 at 17:46
There's no problem with your choice command, and tested on win10 it's okay.
– Tiw
Jan 4 at 3:22
Okay now it's working
– maxmarsz
Jan 4 at 5:30
I think you need to use big letters in arguments
– maxmarsz
Jan 4 at 5:31
@maxmarsz What did you do to make it working? I just copied your lower case command and it worked fine.
– Tiw
Jan 5 at 3:30
|
show 1 more comment
1
Nowhere in the help file for theSET
command does it say that a double equals is a valid operator. Where did you find this example on the Internet? You can simplify the assignment like this:set /a speed-=4
.
– Squashman
Jan 2 at 17:46
There's no problem with your choice command, and tested on win10 it's okay.
– Tiw
Jan 4 at 3:22
Okay now it's working
– maxmarsz
Jan 4 at 5:30
I think you need to use big letters in arguments
– maxmarsz
Jan 4 at 5:31
@maxmarsz What did you do to make it working? I just copied your lower case command and it worked fine.
– Tiw
Jan 5 at 3:30
1
1
Nowhere in the help file for the
SET
command does it say that a double equals is a valid operator. Where did you find this example on the Internet? You can simplify the assignment like this: set /a speed-=4
.– Squashman
Jan 2 at 17:46
Nowhere in the help file for the
SET
command does it say that a double equals is a valid operator. Where did you find this example on the Internet? You can simplify the assignment like this: set /a speed-=4
.– Squashman
Jan 2 at 17:46
There's no problem with your choice command, and tested on win10 it's okay.
– Tiw
Jan 4 at 3:22
There's no problem with your choice command, and tested on win10 it's okay.
– Tiw
Jan 4 at 3:22
Okay now it's working
– maxmarsz
Jan 4 at 5:30
Okay now it's working
– maxmarsz
Jan 4 at 5:30
I think you need to use big letters in arguments
– maxmarsz
Jan 4 at 5:31
I think you need to use big letters in arguments
– maxmarsz
Jan 4 at 5:31
@maxmarsz What did you do to make it working? I just copied your lower case command and it worked fine.
– Tiw
Jan 5 at 3:30
@maxmarsz What did you do to make it working? I just copied your lower case command and it worked fine.
– Tiw
Jan 5 at 3:30
|
show 1 more comment
2 Answers
2
active
oldest
votes
If you're wanting only a limited number of valid options, you should really consider using the Choice
command. Unlike Set /P
which allows for any or no entry, Choice
will alert and prevent invalid input.
Set "velocidad=4"
Choice /C 123 /M "reduccion de velocidad: "
Set /A velocidad -= %ErrorLevel%
For usage information, enter Choice /?
at the Command Prompt. And similarly for the Set
command, Set /?
.
I dont know why but choice command just dont work for me
– maxmarsz
Jan 2 at 21:05
When I add it program just stops as it comes and I cannot do anything to it
– maxmarsz
Jan 2 at 21:06
1
It won't work if you're still using the seventeen+ year old Operating System formerly known as Windows XP, as it wasn't part of that product. But I'm sure that you'd have mentioned that as part of your question proper, or at least use an appropriate title and/or tag to inform us you were using Windows XP if that was the case. Have you opened a Command Prompt window and enteredChoice /?
yet, if it works, the problem is elsewhere in something you haven't told us about, and therefore out of the scope of this question.
– Compo
Jan 2 at 22:17
So Im working on windows 10 and yes I checkd the choice /? and it works. But when I use it in my program it just stops
– maxmarsz
Jan 3 at 5:41
@maxmarsz, there is absolutely nothing wrong with the three lines I've posted. Please update the main body of your question to provide us with the actual code you're now having issues with. We cannot help you fix the problem if we don't know what it is.
– Compo
Jan 3 at 6:25
add a comment |
Just
set /a speed=4-speed
When you use /a
, you don't need %
anymore. also you used ==
instead of =
.
If you want x-speed, then it's:
set /a speed=x-speed
2
Thank you a lot It works :D
– maxmarsz
Jan 2 at 16:50
add a comment |
Your Answer
StackExchange.ifUsing("editor", function () {
StackExchange.using("externalEditor", function () {
StackExchange.using("snippets", function () {
StackExchange.snippets.init();
});
});
}, "code-snippets");
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "1"
};
initTagRenderer("".split(" "), "".split(" "), channelOptions);
StackExchange.using("externalEditor", function() {
// Have to fire editor after snippets, if snippets enabled
if (StackExchange.settings.snippets.snippetsEnabled) {
StackExchange.using("snippets", function() {
createEditor();
});
}
else {
createEditor();
}
});
function createEditor() {
StackExchange.prepareEditor({
heartbeatType: 'answer',
autoActivateHeartbeat: false,
convertImagesToLinks: true,
noModals: true,
showLowRepImageUploadWarning: true,
reputationToPostImages: 10,
bindNavPrevention: true,
postfix: "",
imageUploader: {
brandingHtml: "Powered by u003ca class="icon-imgur-white" href="https://imgur.com/"u003eu003c/au003e",
contentPolicyHtml: "User contributions licensed under u003ca href="https://creativecommons.org/licenses/by-sa/3.0/"u003ecc by-sa 3.0 with attribution requiredu003c/au003e u003ca href="https://stackoverflow.com/legal/content-policy"u003e(content policy)u003c/au003e",
allowUrls: true
},
onDemand: true,
discardSelector: ".discard-answer"
,immediatelyShowMarkdownHelp:true
});
}
});
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010107%2fhow-to-reduce-value-of-variable-in-batch%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
2 Answers
2
active
oldest
votes
2 Answers
2
active
oldest
votes
active
oldest
votes
active
oldest
votes
If you're wanting only a limited number of valid options, you should really consider using the Choice
command. Unlike Set /P
which allows for any or no entry, Choice
will alert and prevent invalid input.
Set "velocidad=4"
Choice /C 123 /M "reduccion de velocidad: "
Set /A velocidad -= %ErrorLevel%
For usage information, enter Choice /?
at the Command Prompt. And similarly for the Set
command, Set /?
.
I dont know why but choice command just dont work for me
– maxmarsz
Jan 2 at 21:05
When I add it program just stops as it comes and I cannot do anything to it
– maxmarsz
Jan 2 at 21:06
1
It won't work if you're still using the seventeen+ year old Operating System formerly known as Windows XP, as it wasn't part of that product. But I'm sure that you'd have mentioned that as part of your question proper, or at least use an appropriate title and/or tag to inform us you were using Windows XP if that was the case. Have you opened a Command Prompt window and enteredChoice /?
yet, if it works, the problem is elsewhere in something you haven't told us about, and therefore out of the scope of this question.
– Compo
Jan 2 at 22:17
So Im working on windows 10 and yes I checkd the choice /? and it works. But when I use it in my program it just stops
– maxmarsz
Jan 3 at 5:41
@maxmarsz, there is absolutely nothing wrong with the three lines I've posted. Please update the main body of your question to provide us with the actual code you're now having issues with. We cannot help you fix the problem if we don't know what it is.
– Compo
Jan 3 at 6:25
add a comment |
If you're wanting only a limited number of valid options, you should really consider using the Choice
command. Unlike Set /P
which allows for any or no entry, Choice
will alert and prevent invalid input.
Set "velocidad=4"
Choice /C 123 /M "reduccion de velocidad: "
Set /A velocidad -= %ErrorLevel%
For usage information, enter Choice /?
at the Command Prompt. And similarly for the Set
command, Set /?
.
I dont know why but choice command just dont work for me
– maxmarsz
Jan 2 at 21:05
When I add it program just stops as it comes and I cannot do anything to it
– maxmarsz
Jan 2 at 21:06
1
It won't work if you're still using the seventeen+ year old Operating System formerly known as Windows XP, as it wasn't part of that product. But I'm sure that you'd have mentioned that as part of your question proper, or at least use an appropriate title and/or tag to inform us you were using Windows XP if that was the case. Have you opened a Command Prompt window and enteredChoice /?
yet, if it works, the problem is elsewhere in something you haven't told us about, and therefore out of the scope of this question.
– Compo
Jan 2 at 22:17
So Im working on windows 10 and yes I checkd the choice /? and it works. But when I use it in my program it just stops
– maxmarsz
Jan 3 at 5:41
@maxmarsz, there is absolutely nothing wrong with the three lines I've posted. Please update the main body of your question to provide us with the actual code you're now having issues with. We cannot help you fix the problem if we don't know what it is.
– Compo
Jan 3 at 6:25
add a comment |
If you're wanting only a limited number of valid options, you should really consider using the Choice
command. Unlike Set /P
which allows for any or no entry, Choice
will alert and prevent invalid input.
Set "velocidad=4"
Choice /C 123 /M "reduccion de velocidad: "
Set /A velocidad -= %ErrorLevel%
For usage information, enter Choice /?
at the Command Prompt. And similarly for the Set
command, Set /?
.
If you're wanting only a limited number of valid options, you should really consider using the Choice
command. Unlike Set /P
which allows for any or no entry, Choice
will alert and prevent invalid input.
Set "velocidad=4"
Choice /C 123 /M "reduccion de velocidad: "
Set /A velocidad -= %ErrorLevel%
For usage information, enter Choice /?
at the Command Prompt. And similarly for the Set
command, Set /?
.
answered Jan 2 at 18:12
CompoCompo
16.8k3927
16.8k3927
I dont know why but choice command just dont work for me
– maxmarsz
Jan 2 at 21:05
When I add it program just stops as it comes and I cannot do anything to it
– maxmarsz
Jan 2 at 21:06
1
It won't work if you're still using the seventeen+ year old Operating System formerly known as Windows XP, as it wasn't part of that product. But I'm sure that you'd have mentioned that as part of your question proper, or at least use an appropriate title and/or tag to inform us you were using Windows XP if that was the case. Have you opened a Command Prompt window and enteredChoice /?
yet, if it works, the problem is elsewhere in something you haven't told us about, and therefore out of the scope of this question.
– Compo
Jan 2 at 22:17
So Im working on windows 10 and yes I checkd the choice /? and it works. But when I use it in my program it just stops
– maxmarsz
Jan 3 at 5:41
@maxmarsz, there is absolutely nothing wrong with the three lines I've posted. Please update the main body of your question to provide us with the actual code you're now having issues with. We cannot help you fix the problem if we don't know what it is.
– Compo
Jan 3 at 6:25
add a comment |
I dont know why but choice command just dont work for me
– maxmarsz
Jan 2 at 21:05
When I add it program just stops as it comes and I cannot do anything to it
– maxmarsz
Jan 2 at 21:06
1
It won't work if you're still using the seventeen+ year old Operating System formerly known as Windows XP, as it wasn't part of that product. But I'm sure that you'd have mentioned that as part of your question proper, or at least use an appropriate title and/or tag to inform us you were using Windows XP if that was the case. Have you opened a Command Prompt window and enteredChoice /?
yet, if it works, the problem is elsewhere in something you haven't told us about, and therefore out of the scope of this question.
– Compo
Jan 2 at 22:17
So Im working on windows 10 and yes I checkd the choice /? and it works. But when I use it in my program it just stops
– maxmarsz
Jan 3 at 5:41
@maxmarsz, there is absolutely nothing wrong with the three lines I've posted. Please update the main body of your question to provide us with the actual code you're now having issues with. We cannot help you fix the problem if we don't know what it is.
– Compo
Jan 3 at 6:25
I dont know why but choice command just dont work for me
– maxmarsz
Jan 2 at 21:05
I dont know why but choice command just dont work for me
– maxmarsz
Jan 2 at 21:05
When I add it program just stops as it comes and I cannot do anything to it
– maxmarsz
Jan 2 at 21:06
When I add it program just stops as it comes and I cannot do anything to it
– maxmarsz
Jan 2 at 21:06
1
1
It won't work if you're still using the seventeen+ year old Operating System formerly known as Windows XP, as it wasn't part of that product. But I'm sure that you'd have mentioned that as part of your question proper, or at least use an appropriate title and/or tag to inform us you were using Windows XP if that was the case. Have you opened a Command Prompt window and entered
Choice /?
yet, if it works, the problem is elsewhere in something you haven't told us about, and therefore out of the scope of this question.– Compo
Jan 2 at 22:17
It won't work if you're still using the seventeen+ year old Operating System formerly known as Windows XP, as it wasn't part of that product. But I'm sure that you'd have mentioned that as part of your question proper, or at least use an appropriate title and/or tag to inform us you were using Windows XP if that was the case. Have you opened a Command Prompt window and entered
Choice /?
yet, if it works, the problem is elsewhere in something you haven't told us about, and therefore out of the scope of this question.– Compo
Jan 2 at 22:17
So Im working on windows 10 and yes I checkd the choice /? and it works. But when I use it in my program it just stops
– maxmarsz
Jan 3 at 5:41
So Im working on windows 10 and yes I checkd the choice /? and it works. But when I use it in my program it just stops
– maxmarsz
Jan 3 at 5:41
@maxmarsz, there is absolutely nothing wrong with the three lines I've posted. Please update the main body of your question to provide us with the actual code you're now having issues with. We cannot help you fix the problem if we don't know what it is.
– Compo
Jan 3 at 6:25
@maxmarsz, there is absolutely nothing wrong with the three lines I've posted. Please update the main body of your question to provide us with the actual code you're now having issues with. We cannot help you fix the problem if we don't know what it is.
– Compo
Jan 3 at 6:25
add a comment |
Just
set /a speed=4-speed
When you use /a
, you don't need %
anymore. also you used ==
instead of =
.
If you want x-speed, then it's:
set /a speed=x-speed
2
Thank you a lot It works :D
– maxmarsz
Jan 2 at 16:50
add a comment |
Just
set /a speed=4-speed
When you use /a
, you don't need %
anymore. also you used ==
instead of =
.
If you want x-speed, then it's:
set /a speed=x-speed
2
Thank you a lot It works :D
– maxmarsz
Jan 2 at 16:50
add a comment |
Just
set /a speed=4-speed
When you use /a
, you don't need %
anymore. also you used ==
instead of =
.
If you want x-speed, then it's:
set /a speed=x-speed
Just
set /a speed=4-speed
When you use /a
, you don't need %
anymore. also you used ==
instead of =
.
If you want x-speed, then it's:
set /a speed=x-speed
edited Jan 2 at 16:50
answered Jan 2 at 16:48
TiwTiw
4,24861630
4,24861630
2
Thank you a lot It works :D
– maxmarsz
Jan 2 at 16:50
add a comment |
2
Thank you a lot It works :D
– maxmarsz
Jan 2 at 16:50
2
2
Thank you a lot It works :D
– maxmarsz
Jan 2 at 16:50
Thank you a lot It works :D
– maxmarsz
Jan 2 at 16:50
add a comment |
Thanks for contributing an answer to Stack Overflow!
- Please be sure to answer the question. Provide details and share your research!
But avoid …
- Asking for help, clarification, or responding to other answers.
- Making statements based on opinion; back them up with references or personal experience.
To learn more, see our tips on writing great answers.
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f54010107%2fhow-to-reduce-value-of-variable-in-batch%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Sign up or log in
StackExchange.ready(function () {
StackExchange.helpers.onClickDraftSave('#login-link');
});
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Sign up using Google
Sign up using Facebook
Sign up using Email and Password
Post as a guest
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
Required, but never shown
1
Nowhere in the help file for the
SET
command does it say that a double equals is a valid operator. Where did you find this example on the Internet? You can simplify the assignment like this:set /a speed-=4
.– Squashman
Jan 2 at 17:46
There's no problem with your choice command, and tested on win10 it's okay.
– Tiw
Jan 4 at 3:22
Okay now it's working
– maxmarsz
Jan 4 at 5:30
I think you need to use big letters in arguments
– maxmarsz
Jan 4 at 5:31
@maxmarsz What did you do to make it working? I just copied your lower case command and it worked fine.
– Tiw
Jan 5 at 3:30