Batch Stapelverarbeitungsdatei zur Abfrage des Rechnernamens mit If GOTO Verzweigung

Mitglied: doschtinator

doschtinator (Level 1)

30.08.2011, aktualisiert 18.10.2012, 3924 Aufrufe, 5 Kommentare

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
5 Kommentare
Mitglied: 60730
60730 (Level 5)
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ß
Mitglied: Skyemugen
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 ;-) face-wink (angeben kann man Computernamen btw. auch in Groß und Klein, es gibt sogar zwei oder drei Anwendungen in Windows, die das dann originalgetreu übernehmen)
Mitglied: doschtinator
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ß
Mitglied: Skyemugen
30.08.2011 um 10:25 Uhr
Zitat von @doschtinator:
ist wie gesagt nur zum testen.

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 ;-) face-wink
Mitglied: doschtinator
30.08.2011 um 10:29 Uhr
Zitat von @Skyemugen:

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 ;-) face-wink

Ja, da hast du wohl recht! ;-) face-wink Ob ich dann den Groß-Kleinschreibungs-Unterschied erkannt/gewusst hätte - ich wage es zu bezweifeln ...
Merke es mir für meine nächsten Versuche.