Incorrect result of comparison in batch file
this batch:
@echo off
set _ping_cmd=ping -n 1 192.168.1.1
FOR /L %%G IN (1,1,60) DO (
FOR /f "tokens=4 delims=(=" %%G IN ('%_ping_cmd% ^|find "loss"') DO (
echo Result is [%%G]
IF %%G == " 0 " GOTO ON
)
timeout 60
)
:ON
produced this output:
D:>live
Result is [ 0 ]
Waiting for 52 seconds, press a key to continue ...
Why? Obviously, the %%G IS " 0 ", but goto is not executed..
batch-file
add a comment |
this batch:
@echo off
set _ping_cmd=ping -n 1 192.168.1.1
FOR /L %%G IN (1,1,60) DO (
FOR /f "tokens=4 delims=(=" %%G IN ('%_ping_cmd% ^|find "loss"') DO (
echo Result is [%%G]
IF %%G == " 0 " GOTO ON
)
timeout 60
)
:ON
produced this output:
D:>live
Result is [ 0 ]
Waiting for 52 seconds, press a key to continue ...
Why? Obviously, the %%G IS " 0 ", but goto is not executed..
batch-file
You're reusing the same variable name for both FOR calls. This is asking for trouble.
– shawn
Feb 4 at 16:45
add a comment |
this batch:
@echo off
set _ping_cmd=ping -n 1 192.168.1.1
FOR /L %%G IN (1,1,60) DO (
FOR /f "tokens=4 delims=(=" %%G IN ('%_ping_cmd% ^|find "loss"') DO (
echo Result is [%%G]
IF %%G == " 0 " GOTO ON
)
timeout 60
)
:ON
produced this output:
D:>live
Result is [ 0 ]
Waiting for 52 seconds, press a key to continue ...
Why? Obviously, the %%G IS " 0 ", but goto is not executed..
batch-file
this batch:
@echo off
set _ping_cmd=ping -n 1 192.168.1.1
FOR /L %%G IN (1,1,60) DO (
FOR /f "tokens=4 delims=(=" %%G IN ('%_ping_cmd% ^|find "loss"') DO (
echo Result is [%%G]
IF %%G == " 0 " GOTO ON
)
timeout 60
)
:ON
produced this output:
D:>live
Result is [ 0 ]
Waiting for 52 seconds, press a key to continue ...
Why? Obviously, the %%G IS " 0 ", but goto is not executed..
batch-file
batch-file
edited Feb 3 at 21:36
JakeGould
31.6k1096138
31.6k1096138
asked Feb 3 at 20:33
JerryJerry
132
132
You're reusing the same variable name for both FOR calls. This is asking for trouble.
– shawn
Feb 4 at 16:45
add a comment |
You're reusing the same variable name for both FOR calls. This is asking for trouble.
– shawn
Feb 4 at 16:45
You're reusing the same variable name for both FOR calls. This is asking for trouble.
– shawn
Feb 4 at 16:45
You're reusing the same variable name for both FOR calls. This is asking for trouble.
– shawn
Feb 4 at 16:45
add a comment |
1 Answer
1
active
oldest
votes
Obviously, the %%G IS " 0 ", but goto is not executed..
You need quotes around %%G as follows:
IF "%%G" == " 0 " GOTO ON
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- If - Conditionally perform command - Windows CMD - SS64.com
add a comment |
Your Answer
StackExchange.ready(function() {
var channelOptions = {
tags: "".split(" "),
id: "3"
};
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%2fsuperuser.com%2fquestions%2f1401662%2fincorrect-result-of-comparison-in-batch-file%23new-answer', 'question_page');
}
);
Post as a guest
Required, but never shown
1 Answer
1
active
oldest
votes
1 Answer
1
active
oldest
votes
active
oldest
votes
active
oldest
votes
Obviously, the %%G IS " 0 ", but goto is not executed..
You need quotes around %%G as follows:
IF "%%G" == " 0 " GOTO ON
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- If - Conditionally perform command - Windows CMD - SS64.com
add a comment |
Obviously, the %%G IS " 0 ", but goto is not executed..
You need quotes around %%G as follows:
IF "%%G" == " 0 " GOTO ON
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- If - Conditionally perform command - Windows CMD - SS64.com
add a comment |
Obviously, the %%G IS " 0 ", but goto is not executed..
You need quotes around %%G as follows:
IF "%%G" == " 0 " GOTO ON
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- If - Conditionally perform command - Windows CMD - SS64.com
Obviously, the %%G IS " 0 ", but goto is not executed..
You need quotes around %%G as follows:
IF "%%G" == " 0 " GOTO ON
Further Reading
- An A-Z Index of the Windows CMD command line | SS64.com
- Windows CMD Commands (categorized) - Windows CMD - SS64.com
- If - Conditionally perform command - Windows CMD - SS64.com
answered Feb 3 at 21:04
DavidPostill♦DavidPostill
106k26228263
106k26228263
add a comment |
add a comment |
Thanks for contributing an answer to Super User!
- 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%2fsuperuser.com%2fquestions%2f1401662%2fincorrect-result-of-comparison-in-batch-file%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
You're reusing the same variable name for both FOR calls. This is asking for trouble.
– shawn
Feb 4 at 16:45