https://administrator.de - IT-Wissen, Forum und Netzwerk
Batch Stapelverarbeitungsdatei zur Abfrage des Rechnernamens mit If GOTO Verzweigung
Bitte um Hilfe, da ich nicht sehe wo der Fehler ist.
Hallo,
ich benötige eine kleine Hilfe, da meine .bat nicht so tut wie sie soll.
Habe es mittlerweile auf zwei Systemen, Win 7 und Win XP, getestet. Leider bei beiden ohne Erfolg. Hier einmal der Code:
::--------------BeginOfBatch@echo off
:Abfrage1
If "%computername%" == "Satellite" GOTO PC1
:Abfrage2
If "%computername%" == "Horst" GOTO PC2
:Fehler
echo Prog auf diesem PC nicht verfuegbar!
GOTO Ende
:PC1
echo Das ist der richtige PC
GOTO Ende
:PC2
echo Das ist der Horst PC
GOTO Ende
:Ende
pause > nul
::--------------EndOfBatch
Es erscheint jedoch immer die Meldung "Prog auf diesem PC nicht verfuegbar!" obwohl die Maschine mit 100%-iger Sicherheit den Namen Satellite hat! Wo steckt mein Fehler?
Bin um jede Hilfe/Hinweis dankbar!
Gruß doschtinator
ich benötige eine kleine Hilfe, da meine .bat nicht so tut wie sie soll.
Habe es mittlerweile auf zwei Systemen, Win 7 und Win XP, getestet. Leider bei beiden ohne Erfolg. Hier einmal der Code:
::--------------BeginOfBatch@echo off
:Abfrage1
If "%computername%" == "Satellite" GOTO PC1
:Abfrage2
If "%computername%" == "Horst" GOTO PC2
:Fehler
echo Prog auf diesem PC nicht verfuegbar!
GOTO Ende
:PC1
echo Das ist der richtige PC
GOTO Ende
:PC2
echo Das ist der Horst PC
GOTO Ende
:Ende
pause > nul
::--------------EndOfBatch
Es erscheint jedoch immer die Meldung "Prog auf diesem PC nicht verfuegbar!" obwohl die Maschine mit 100%-iger Sicherheit den Namen Satellite hat! Wo steckt mein Fehler?
Bin um jede Hilfe/Hinweis dankbar!
Gruß doschtinator
5 Kommentare
LÖSUNG 30.08.2011, aktualisiert 18.10.2012
moin,
lese dir das mal durch.
Und dann wird dir irgendwann auffallen, dass ein Rechner entweder klein oder große Buchstaben hat - eine Mischung gibt es nicht.
if /i
Gruß
lese dir das mal durch.
Und dann wird dir irgendwann auffallen, dass ein Rechner entweder klein oder große Buchstaben hat - eine Mischung gibt es nicht.
if /i
Gruß
LÖSUNG 30.08.2011, aktualisiert 08.01.2014
Aloha,
benutze einfach if /i, da %computername% im cmd immer GROSS ausfällt ...
Und wenn du nur zwei Abfragen hast, verzweige sie doch statt zwei Anfragen zu machen if /? sollte dir gute Beispiele geben ...
Sollte :Ende wirklich nur pause>nul enthalten, ersetze GOTO Ende doch gleich durch pause>nul && goto :eof
Ach und bitte nutze demnächst <code></code>-Tags, danke.
greetz André
P.S.:@T-Mo, du if /i-Hineineditierer
(angeben kann man Computernamen btw. auch in Groß und Klein, es gibt sogar zwei oder drei Anwendungen in Windows, die das dann originalgetreu übernehmen)
benutze einfach if /i, da %computername% im cmd immer GROSS ausfällt ...
Und wenn du nur zwei Abfragen hast, verzweige sie doch statt zwei Anfragen zu machen if /? sollte dir gute Beispiele geben ...
Sollte :Ende wirklich nur pause>nul enthalten, ersetze GOTO Ende doch gleich durch pause>nul && goto :eof
Ach und bitte nutze demnächst <code></code>-Tags, danke.
greetz André
P.S.:@T-Mo, du if /i-Hineineditierer
LÖSUNG 30.08.2011 um 10:22 Uhr
Hallo und danke für den Tipp!
Mit
if /i
scheint die Sache nun genau so zu funktionieren wie ich es haben möchte! Super!
Wegen den Abfragen:
Ich habe das Ganze erst einmal so verfasst um ein wenig zu probieren. Ich wollte erst einmal sicher gehen, dass die IF-Abfragen auch so funktionieren wie gewünscht. Alles andere kommt dann noch jetzt im Nachhinein dazu. Aber ich schaue mir die Hilfe zu IF sicherlich an.
pause > nul fliegt am Ende eh raus, ist wie gesagt nur zum testen.
Danke und schönen Tag noch!
Gruß
Mit
if /i
scheint die Sache nun genau so zu funktionieren wie ich es haben möchte! Super!
Wegen den Abfragen:
Ich habe das Ganze erst einmal so verfasst um ein wenig zu probieren. Ich wollte erst einmal sicher gehen, dass die IF-Abfragen auch so funktionieren wie gewünscht. Alles andere kommt dann noch jetzt im Nachhinein dazu. Aber ich schaue mir die Hilfe zu IF sicherlich an.
pause > nul fliegt am Ende eh raus, ist wie gesagt nur zum testen.
Danke und schönen Tag noch!
Gruß
LÖSUNG 30.08.2011 um 10:25 Uhr
Man testet:
- mit aktivem Echo
- an der cmd (optional, aber bei längeren Skripten sinnvoll)
... (dann wäre dir auch aufgefallen, dass "HORST" neq "Horst" ist
LÖSUNG 30.08.2011 um 10:29 Uhr
Zitat von @Skyemugen:
Man testet:
... (dann wäre dir auch aufgefallen, dass "HORST" neq "Horst" ist
Man testet:
- mit aktivem Echo
- an der cmd (optional, aber bei längeren Skripten sinnvoll)
... (dann wäre dir auch aufgefallen, dass "HORST" neq "Horst" ist
Ja, da hast du wohl recht!
Merke es mir für meine nächsten Versuche.