hostname result as variable and then comparing it












-1














So. This is making me go crazy. My batch file knowledge is very basic.



So far I have this from other sources to set a variable to be the result from hostname



FOR /F "usebackq" %%i IN (`hostname`) DO SET PCNAME=%%i


I'm still confused by this whole line but it works so I've kept it. I would like to understand what each part of it is doing though.



With that variable PCNAME I now want to do the following




IF PCNAME = RDS then GOTO exit

else

GOTO main




But I can't get this IF ELSE part to work (the above I know isn't true code but it's just to explain what I'd like to do).



So to sum up.



Create a variable from the result of hostname.

Compare that variable to see if it matches RDS. If it does, then quit, if it doesn't go onto another part of the batch file.



I was thinking of looking to see if its easier to do in Powershell instead. My knowledge of that is mega basic as well but looks like Powershell is easier to use than batch files.










share|improve this question




















  • 1




    If you read the help file for the IF command you will clearly see what the syntax is for using ELSE
    – Squashman
    Nov 12 at 23:18










  • if /?, for /f
    – LotPings
    Nov 12 at 23:56












  • This line is simple. it assigns a token (%%i) to the output of the command hostname and sets another variable with that same name.. pretty useless as you could simply do set PCNAME=%computername% or eve better, just use the %computername% preset variable.
    – Gerhard Barnard
    Nov 13 at 7:25












  • @Squashman Thanks Squashman for the warm welcome. I've always had issues making sense of the CMD help file examples, much as the same of DOS help way back when, hence I thought I'd ask here as everyone seems helpful.
    – Jon Donnis
    Nov 13 at 9:04
















-1














So. This is making me go crazy. My batch file knowledge is very basic.



So far I have this from other sources to set a variable to be the result from hostname



FOR /F "usebackq" %%i IN (`hostname`) DO SET PCNAME=%%i


I'm still confused by this whole line but it works so I've kept it. I would like to understand what each part of it is doing though.



With that variable PCNAME I now want to do the following




IF PCNAME = RDS then GOTO exit

else

GOTO main




But I can't get this IF ELSE part to work (the above I know isn't true code but it's just to explain what I'd like to do).



So to sum up.



Create a variable from the result of hostname.

Compare that variable to see if it matches RDS. If it does, then quit, if it doesn't go onto another part of the batch file.



I was thinking of looking to see if its easier to do in Powershell instead. My knowledge of that is mega basic as well but looks like Powershell is easier to use than batch files.










share|improve this question




















  • 1




    If you read the help file for the IF command you will clearly see what the syntax is for using ELSE
    – Squashman
    Nov 12 at 23:18










  • if /?, for /f
    – LotPings
    Nov 12 at 23:56












  • This line is simple. it assigns a token (%%i) to the output of the command hostname and sets another variable with that same name.. pretty useless as you could simply do set PCNAME=%computername% or eve better, just use the %computername% preset variable.
    – Gerhard Barnard
    Nov 13 at 7:25












  • @Squashman Thanks Squashman for the warm welcome. I've always had issues making sense of the CMD help file examples, much as the same of DOS help way back when, hence I thought I'd ask here as everyone seems helpful.
    – Jon Donnis
    Nov 13 at 9:04














-1












-1








-1







So. This is making me go crazy. My batch file knowledge is very basic.



So far I have this from other sources to set a variable to be the result from hostname



FOR /F "usebackq" %%i IN (`hostname`) DO SET PCNAME=%%i


I'm still confused by this whole line but it works so I've kept it. I would like to understand what each part of it is doing though.



With that variable PCNAME I now want to do the following




IF PCNAME = RDS then GOTO exit

else

GOTO main




But I can't get this IF ELSE part to work (the above I know isn't true code but it's just to explain what I'd like to do).



So to sum up.



Create a variable from the result of hostname.

Compare that variable to see if it matches RDS. If it does, then quit, if it doesn't go onto another part of the batch file.



I was thinking of looking to see if its easier to do in Powershell instead. My knowledge of that is mega basic as well but looks like Powershell is easier to use than batch files.










share|improve this question















So. This is making me go crazy. My batch file knowledge is very basic.



So far I have this from other sources to set a variable to be the result from hostname



FOR /F "usebackq" %%i IN (`hostname`) DO SET PCNAME=%%i


I'm still confused by this whole line but it works so I've kept it. I would like to understand what each part of it is doing though.



With that variable PCNAME I now want to do the following




IF PCNAME = RDS then GOTO exit

else

GOTO main




But I can't get this IF ELSE part to work (the above I know isn't true code but it's just to explain what I'd like to do).



So to sum up.



Create a variable from the result of hostname.

Compare that variable to see if it matches RDS. If it does, then quit, if it doesn't go onto another part of the batch file.



I was thinking of looking to see if its easier to do in Powershell instead. My knowledge of that is mega basic as well but looks like Powershell is easier to use than batch files.







batch-file






share|improve this question















share|improve this question













share|improve this question




share|improve this question








edited Nov 13 at 0:38









LotPings

17.2k61531




17.2k61531










asked Nov 12 at 22:34









Jon Donnis

1




1








  • 1




    If you read the help file for the IF command you will clearly see what the syntax is for using ELSE
    – Squashman
    Nov 12 at 23:18










  • if /?, for /f
    – LotPings
    Nov 12 at 23:56












  • This line is simple. it assigns a token (%%i) to the output of the command hostname and sets another variable with that same name.. pretty useless as you could simply do set PCNAME=%computername% or eve better, just use the %computername% preset variable.
    – Gerhard Barnard
    Nov 13 at 7:25












  • @Squashman Thanks Squashman for the warm welcome. I've always had issues making sense of the CMD help file examples, much as the same of DOS help way back when, hence I thought I'd ask here as everyone seems helpful.
    – Jon Donnis
    Nov 13 at 9:04














  • 1




    If you read the help file for the IF command you will clearly see what the syntax is for using ELSE
    – Squashman
    Nov 12 at 23:18










  • if /?, for /f
    – LotPings
    Nov 12 at 23:56












  • This line is simple. it assigns a token (%%i) to the output of the command hostname and sets another variable with that same name.. pretty useless as you could simply do set PCNAME=%computername% or eve better, just use the %computername% preset variable.
    – Gerhard Barnard
    Nov 13 at 7:25












  • @Squashman Thanks Squashman for the warm welcome. I've always had issues making sense of the CMD help file examples, much as the same of DOS help way back when, hence I thought I'd ask here as everyone seems helpful.
    – Jon Donnis
    Nov 13 at 9:04








1




1




If you read the help file for the IF command you will clearly see what the syntax is for using ELSE
– Squashman
Nov 12 at 23:18




If you read the help file for the IF command you will clearly see what the syntax is for using ELSE
– Squashman
Nov 12 at 23:18












if /?, for /f
– LotPings
Nov 12 at 23:56






if /?, for /f
– LotPings
Nov 12 at 23:56














This line is simple. it assigns a token (%%i) to the output of the command hostname and sets another variable with that same name.. pretty useless as you could simply do set PCNAME=%computername% or eve better, just use the %computername% preset variable.
– Gerhard Barnard
Nov 13 at 7:25






This line is simple. it assigns a token (%%i) to the output of the command hostname and sets another variable with that same name.. pretty useless as you could simply do set PCNAME=%computername% or eve better, just use the %computername% preset variable.
– Gerhard Barnard
Nov 13 at 7:25














@Squashman Thanks Squashman for the warm welcome. I've always had issues making sense of the CMD help file examples, much as the same of DOS help way back when, hence I thought I'd ask here as everyone seems helpful.
– Jon Donnis
Nov 13 at 9:04




@Squashman Thanks Squashman for the warm welcome. I've always had issues making sense of the CMD help file examples, much as the same of DOS help way back when, hence I thought I'd ask here as everyone seems helpful.
– Jon Donnis
Nov 13 at 9:04












1 Answer
1






active

oldest

votes


















0














Thanks for the replies. In the morning, and as Gerhard Barnard mentioned I realised I could just use %computername% which works



@echo off
IF %computername% EQU MyPC (
echo MyPC
) else (
echo Do nothing
)





share|improve this answer























  • As a best practice I would advise that you use this syntax when doing string comparisons. IF "%computername%"=="MyPC". Also remember that the string comparisons are case sensitive. Use the /I option for a case insensitive match.
    – Squashman
    Nov 13 at 17:04










  • @Squashman OK thanks. I'm having trouble understanding the help file for IF and ss64.com hasn't made it any easier. So I'm curious to know what the, easy to understand difference is between EQU and == It's difficult understanding where an issue lies in the BATCH file as well due to no ability to step through the code.
    – Jon Donnis
    Nov 14 at 16:42










  • EQU, NEQ, GTR,GEQ,LSS, and LEQ are normally used for comparing integers. While they can be used to compare strings, it is better to use == for that. What do you mean you cannot step through code?
    – Squashman
    Nov 14 at 16:51










  • @Squashman Thanks, that makes more sense. Regarding the step through comment, I've searched for the option to step through code in a batch file line by line to debug it. But everyone says this isn't possible with BATCH files. The only way I've semi done it, which isn't great, is stick PAUSEs in various locations I believe I may have errors.
    – Jon Donnis
    Nov 15 at 9:47













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
});


}
});














draft saved

draft discarded


















StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53271080%2fhostname-result-as-variable-and-then-comparing-it%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









0














Thanks for the replies. In the morning, and as Gerhard Barnard mentioned I realised I could just use %computername% which works



@echo off
IF %computername% EQU MyPC (
echo MyPC
) else (
echo Do nothing
)





share|improve this answer























  • As a best practice I would advise that you use this syntax when doing string comparisons. IF "%computername%"=="MyPC". Also remember that the string comparisons are case sensitive. Use the /I option for a case insensitive match.
    – Squashman
    Nov 13 at 17:04










  • @Squashman OK thanks. I'm having trouble understanding the help file for IF and ss64.com hasn't made it any easier. So I'm curious to know what the, easy to understand difference is between EQU and == It's difficult understanding where an issue lies in the BATCH file as well due to no ability to step through the code.
    – Jon Donnis
    Nov 14 at 16:42










  • EQU, NEQ, GTR,GEQ,LSS, and LEQ are normally used for comparing integers. While they can be used to compare strings, it is better to use == for that. What do you mean you cannot step through code?
    – Squashman
    Nov 14 at 16:51










  • @Squashman Thanks, that makes more sense. Regarding the step through comment, I've searched for the option to step through code in a batch file line by line to debug it. But everyone says this isn't possible with BATCH files. The only way I've semi done it, which isn't great, is stick PAUSEs in various locations I believe I may have errors.
    – Jon Donnis
    Nov 15 at 9:47


















0














Thanks for the replies. In the morning, and as Gerhard Barnard mentioned I realised I could just use %computername% which works



@echo off
IF %computername% EQU MyPC (
echo MyPC
) else (
echo Do nothing
)





share|improve this answer























  • As a best practice I would advise that you use this syntax when doing string comparisons. IF "%computername%"=="MyPC". Also remember that the string comparisons are case sensitive. Use the /I option for a case insensitive match.
    – Squashman
    Nov 13 at 17:04










  • @Squashman OK thanks. I'm having trouble understanding the help file for IF and ss64.com hasn't made it any easier. So I'm curious to know what the, easy to understand difference is between EQU and == It's difficult understanding where an issue lies in the BATCH file as well due to no ability to step through the code.
    – Jon Donnis
    Nov 14 at 16:42










  • EQU, NEQ, GTR,GEQ,LSS, and LEQ are normally used for comparing integers. While they can be used to compare strings, it is better to use == for that. What do you mean you cannot step through code?
    – Squashman
    Nov 14 at 16:51










  • @Squashman Thanks, that makes more sense. Regarding the step through comment, I've searched for the option to step through code in a batch file line by line to debug it. But everyone says this isn't possible with BATCH files. The only way I've semi done it, which isn't great, is stick PAUSEs in various locations I believe I may have errors.
    – Jon Donnis
    Nov 15 at 9:47
















0












0








0






Thanks for the replies. In the morning, and as Gerhard Barnard mentioned I realised I could just use %computername% which works



@echo off
IF %computername% EQU MyPC (
echo MyPC
) else (
echo Do nothing
)





share|improve this answer














Thanks for the replies. In the morning, and as Gerhard Barnard mentioned I realised I could just use %computername% which works



@echo off
IF %computername% EQU MyPC (
echo MyPC
) else (
echo Do nothing
)






share|improve this answer














share|improve this answer



share|improve this answer








edited Nov 13 at 17:03









Squashman

8,41231932




8,41231932










answered Nov 13 at 16:21









Jon Donnis

1




1












  • As a best practice I would advise that you use this syntax when doing string comparisons. IF "%computername%"=="MyPC". Also remember that the string comparisons are case sensitive. Use the /I option for a case insensitive match.
    – Squashman
    Nov 13 at 17:04










  • @Squashman OK thanks. I'm having trouble understanding the help file for IF and ss64.com hasn't made it any easier. So I'm curious to know what the, easy to understand difference is between EQU and == It's difficult understanding where an issue lies in the BATCH file as well due to no ability to step through the code.
    – Jon Donnis
    Nov 14 at 16:42










  • EQU, NEQ, GTR,GEQ,LSS, and LEQ are normally used for comparing integers. While they can be used to compare strings, it is better to use == for that. What do you mean you cannot step through code?
    – Squashman
    Nov 14 at 16:51










  • @Squashman Thanks, that makes more sense. Regarding the step through comment, I've searched for the option to step through code in a batch file line by line to debug it. But everyone says this isn't possible with BATCH files. The only way I've semi done it, which isn't great, is stick PAUSEs in various locations I believe I may have errors.
    – Jon Donnis
    Nov 15 at 9:47




















  • As a best practice I would advise that you use this syntax when doing string comparisons. IF "%computername%"=="MyPC". Also remember that the string comparisons are case sensitive. Use the /I option for a case insensitive match.
    – Squashman
    Nov 13 at 17:04










  • @Squashman OK thanks. I'm having trouble understanding the help file for IF and ss64.com hasn't made it any easier. So I'm curious to know what the, easy to understand difference is between EQU and == It's difficult understanding where an issue lies in the BATCH file as well due to no ability to step through the code.
    – Jon Donnis
    Nov 14 at 16:42










  • EQU, NEQ, GTR,GEQ,LSS, and LEQ are normally used for comparing integers. While they can be used to compare strings, it is better to use == for that. What do you mean you cannot step through code?
    – Squashman
    Nov 14 at 16:51










  • @Squashman Thanks, that makes more sense. Regarding the step through comment, I've searched for the option to step through code in a batch file line by line to debug it. But everyone says this isn't possible with BATCH files. The only way I've semi done it, which isn't great, is stick PAUSEs in various locations I believe I may have errors.
    – Jon Donnis
    Nov 15 at 9:47


















As a best practice I would advise that you use this syntax when doing string comparisons. IF "%computername%"=="MyPC". Also remember that the string comparisons are case sensitive. Use the /I option for a case insensitive match.
– Squashman
Nov 13 at 17:04




As a best practice I would advise that you use this syntax when doing string comparisons. IF "%computername%"=="MyPC". Also remember that the string comparisons are case sensitive. Use the /I option for a case insensitive match.
– Squashman
Nov 13 at 17:04












@Squashman OK thanks. I'm having trouble understanding the help file for IF and ss64.com hasn't made it any easier. So I'm curious to know what the, easy to understand difference is between EQU and == It's difficult understanding where an issue lies in the BATCH file as well due to no ability to step through the code.
– Jon Donnis
Nov 14 at 16:42




@Squashman OK thanks. I'm having trouble understanding the help file for IF and ss64.com hasn't made it any easier. So I'm curious to know what the, easy to understand difference is between EQU and == It's difficult understanding where an issue lies in the BATCH file as well due to no ability to step through the code.
– Jon Donnis
Nov 14 at 16:42












EQU, NEQ, GTR,GEQ,LSS, and LEQ are normally used for comparing integers. While they can be used to compare strings, it is better to use == for that. What do you mean you cannot step through code?
– Squashman
Nov 14 at 16:51




EQU, NEQ, GTR,GEQ,LSS, and LEQ are normally used for comparing integers. While they can be used to compare strings, it is better to use == for that. What do you mean you cannot step through code?
– Squashman
Nov 14 at 16:51












@Squashman Thanks, that makes more sense. Regarding the step through comment, I've searched for the option to step through code in a batch file line by line to debug it. But everyone says this isn't possible with BATCH files. The only way I've semi done it, which isn't great, is stick PAUSEs in various locations I believe I may have errors.
– Jon Donnis
Nov 15 at 9:47






@Squashman Thanks, that makes more sense. Regarding the step through comment, I've searched for the option to step through code in a batch file line by line to debug it. But everyone says this isn't possible with BATCH files. The only way I've semi done it, which isn't great, is stick PAUSEs in various locations I believe I may have errors.
– Jon Donnis
Nov 15 at 9:47




















draft saved

draft discarded




















































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.





Some of your past answers have not been well-received, and you're in danger of being blocked from answering.


Please pay close attention to the following guidance:


  • 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.




draft saved


draft discarded














StackExchange.ready(
function () {
StackExchange.openid.initPostLogin('.new-post-login', 'https%3a%2f%2fstackoverflow.com%2fquestions%2f53271080%2fhostname-result-as-variable-and-then-comparing-it%23new-answer', 'question_page');
}
);

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







Popular posts from this blog

鏡平學校

ꓛꓣだゔៀៅຸ໢ທຮ໕໒ ,ໂ'໥໓າ໼ឨឲ៵៭ៈゎゔit''䖳𥁄卿' ☨₤₨こゎもょの;ꜹꟚꞖꞵꟅꞛေၦေɯ,ɨɡ𛃵𛁹ޝ޳ޠ޾,ޤޒޯ޾𫝒𫠁သ𛅤チョ'サノބޘދ𛁐ᶿᶇᶀᶋᶠ㨑㽹⻮ꧬ꧹؍۩وَؠ㇕㇃㇪ ㇦㇋㇋ṜẰᵡᴠ 軌ᵕ搜۳ٰޗޮ޷ސޯ𫖾𫅀ल, ꙭ꙰ꚅꙁꚊꞻꝔ꟠Ꝭㄤﺟޱސꧨꧼ꧴ꧯꧽ꧲ꧯ'⽹⽭⾁⿞⼳⽋២៩ញណើꩯꩤ꩸ꩮᶻᶺᶧᶂ𫳲𫪭𬸄𫵰𬖩𬫣𬊉ၲ𛅬㕦䬺𫝌𫝼,,𫟖𫞽ហៅ஫㆔ాఆఅꙒꚞꙍ,Ꙟ꙱エ ,ポテ,フࢰࢯ𫟠𫞶 𫝤𫟠ﺕﹱﻜﻣ𪵕𪭸𪻆𪾩𫔷ġ,ŧآꞪ꟥,ꞔꝻ♚☹⛵𛀌ꬷꭞȄƁƪƬșƦǙǗdžƝǯǧⱦⱰꓕꓢႋ神 ဴ၀க௭எ௫ឫោ ' េㇷㇴㇼ神ㇸㇲㇽㇴㇼㇻㇸ'ㇸㇿㇸㇹㇰㆣꓚꓤ₡₧ ㄨㄟ㄂ㄖㄎ໗ツڒذ₶।ऩछएोञयूटक़कयँृी,冬'𛅢𛅥ㇱㇵㇶ𥄥𦒽𠣧𠊓𧢖𥞘𩔋цѰㄠſtʯʭɿʆʗʍʩɷɛ,əʏダヵㄐㄘR{gỚṖḺờṠṫảḙḭᴮᵏᴘᵀᵷᵕᴜᴏᵾq﮲ﲿﴽﭙ軌ﰬﶚﶧ﫲Ҝжюїкӈㇴffצּ﬘﭅﬈軌'ffistfflſtffतभफɳɰʊɲʎ𛁱𛁖𛁮𛀉 𛂯𛀞నఋŀŲ 𫟲𫠖𫞺ຆຆ ໹້໕໗ๆทԊꧢꧠ꧰ꓱ⿝⼑ŎḬẃẖỐẅ ,ờỰỈỗﮊDžȩꭏꭎꬻ꭮ꬿꭖꭥꭅ㇭神 ⾈ꓵꓑ⺄㄄ㄪㄙㄅㄇstA۵䞽ॶ𫞑𫝄㇉㇇゜軌𩜛𩳠Jﻺ‚Üမ႕ႌႊၐၸဓၞၞၡ៸wyvtᶎᶪᶹစဎ꣡꣰꣢꣤ٗ؋لㇳㇾㇻㇱ㆐㆔,,㆟Ⱶヤマފ޼ޝަݿݞݠݷݐ',ݘ,ݪݙݵ𬝉𬜁𫝨𫞘くせぉて¼óû×ó£…𛅑הㄙくԗԀ5606神45,神796'𪤻𫞧ꓐ㄁ㄘɥɺꓵꓲ3''7034׉ⱦⱠˆ“𫝋ȍ,ꩲ軌꩷ꩶꩧꩫఞ۔فڱێظペサ神ナᴦᵑ47 9238їﻂ䐊䔉㠸﬎ffiﬣ,לּᴷᴦᵛᵽ,ᴨᵤ ᵸᵥᴗᵈꚏꚉꚟ⻆rtǟƴ𬎎

Why https connections are so slow when debugging (stepping over) in Java?