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-Key: 172264

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

Printed on: April 19, 2024 at 18:04 o'clock

Mitglied: 60730
60730 Aug 30, 2011, updated at Oct 18, 2012 at 16:48:06 (UTC)
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ß
Member: Skyemugen
Solution Skyemugen Aug 30, 2011, updated at Jan 08, 2014 at 22:40:11 (UTC)
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)
Member: doschtinator
doschtinator Aug 30, 2011 at 08:22:52 (UTC)
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ß
Member: Skyemugen
Skyemugen Aug 30, 2011 at 08:25:29 (UTC)
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
Member: doschtinator
doschtinator Aug 30, 2011 at 08:29:40 (UTC)
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.