doschtinator
Goto Top

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

Content-ID: 172264

Url: https://administrator.de/contentid/172264

Ausgedruckt am: 26.11.2024 um 21:11 Uhr

60730
60730 30.08.2011, aktualisiert am 18.10.2012 um 18:48:06 Uhr
Goto Top
moin,


lese dir 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ß
Skyemugen
Lösung Skyemugen 30.08.2011, aktualisiert am 08.01.2014 um 23:40:11 Uhr
Goto Top
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 -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)
doschtinator
doschtinator 30.08.2011 um 10:22:52 Uhr
Goto Top
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ß
Skyemugen
Skyemugen 30.08.2011 um 10:25:29 Uhr
Goto Top
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
doschtinator
doschtinator 30.08.2011 um 10:29:40 Uhr
Goto Top
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.