Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

GOTO-Befehl nach Computername

Frage Microsoft Windows Server

Mitglied: fireti

fireti (Level 1) - Jetzt verbinden

13.02.2011, aktualisiert 14.02.2011, 8797 Aufrufe, 3 Kommentare

Hi,

ich brauche eine Batch welche, durch eine GOTO Anweisung in Abhängigkeit vom Computernamen eine Batch aufruft...

mein bisheriger Batch sieht wie folgt aus:

01.
@echo off 
02.
 
03.
IF %computername% == WTS1 GOTO LoWTS 
04.
IF NOT %computername" == WTS1 GOTO LoLok 
05.
 
06.
:LoWTS 
07.
call batch1.bat 
08.
 
09.
:LoLok 
10.
call batch2.bat
soll bewirken das wenn der User sich auf dem WTS1 anmeldet das die Batch1 gestartet wird, meldet er sich aber an einem PC an welcher NICHT WTS1 heißt
soll Batch2 ausgeführt werden.

Schritt 2 wäre dann eine Batch welche selbiges tut, jedoch unter folgenden bedingungen:

bin ich auf WTS1 oder WTS2 oder WTS3 dann batch1
wenn nicht dann batch2

Danke
Mitglied: bastla
13.02.2011 um 19:01 Uhr
Hallo fireti!

Ausgehend von der Tatsache, dass der Computername nur WTS1 oder doch nicht WTS1 sein kann, würde sich Dein erster Ansatz auf
if /i %computername%==WTS1 (call batch1.bat) else (call batch2.bat)
etwas reduzieren lassen ...
Für die zweite Variante käme es darauf an, ob eine Überprüfung auf den Beginn mit "WTS" ausreicht, oder ob tatsächlich eine konkrete Liste mit Namen geprüft werden soll -
Fall 1:
echo %computername%|findstr /i /b "WTS">nul && call batch1.bat || call batch2.bat
Fall 2:
01.
set "WTS=" 
02.
for %%i in (WTS1 WTS2 WTS3) do if  /i %computername%==%%i set WTS=True 
03.
if defined WTS (call batch1.bat) else (call batch2.bat)
In allen Fällen sieht jedenfalls der Batch besser aus, wenn er beim Posten als "Code" formatiert wird ...

Grüße
bastla
Bitte warten ..
Mitglied: fireti
14.02.2011 um 09:04 Uhr
vielen dank...

klappt bestens... "Fall1" hat im übrigen gereicht, da die WTS-Server alle mit WTS beginnen.

nun muss ich mich bei gelegenheit nur mal an die systax setzten um sie zu verstehen... will ja lernen und net nur abschreiben

danke nochmal

fireti
Bitte warten ..
Mitglied: bastla
14.02.2011 um 11:45 Uhr
Hallo fireti!
will ja lernen und net nur abschreiben
Vernünftiger Ansatz ...

... wobei hier ja nicht viel dahinter ist: "findstr /?" zeigt Dir, wie der Vergleich erfolgt, und "&&" bzw "||" kannst Du generell einsetzen, um auf das Ergebnis der vorgehenden Anweisung ("erfolgreich" = Errorlevel 0 oder "nicht erfolgreich" = Errorlevel <> 0) zu reagieren. Das Unterdrücken der Ausgabe mit ">nul" ist dabei dann nur noch Kosmetik.

Version 2 verwendet einen "Schalter", dessen Zustand (nicht gesetzt / gesetzt - der zugewiesene Wert ist dabei eigentlich egal) sich nur ändert, wenn eine der in der Schleife durchgeführten "if"-Abfragen eine Übereinstimmung ergibt - damit lassen sich "oder"-Verknüpfungen realisieren ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Wenn XX freier speicher dann goto (4)

Frage von functionstrut zum Thema Batch & Shell ...

Batch & Shell
gelöst Batch Dateiabfrage. Wenn älter als dann goto (2)

Frage von Zunaras zum Thema Batch & Shell ...

Entwicklung
gelöst Powershell: Computernamen eingeben (10)

Frage von honeybee zum Thema Entwicklung ...

Entwicklung
gelöst Powershell Script: In Forest nach Computernamen suchen (13)

Frage von Agilolfinger zum Thema Entwicklung ...

Neue Wissensbeiträge
Linux Netzwerk

Ping und das einstellbare Bytepattern

(1)

Erfahrungsbericht von LordGurke zum Thema Linux Netzwerk ...

Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Heiß diskutierte Inhalte
Microsoft Office
Office Druck fehler (18)

Frage von DaistwasimBusch zum Thema Microsoft Office ...

Windows Server
Zertifikat am DC erneuern funktioniert nicht (12)

Frage von takvorian zum Thema Windows Server ...

Festplatten, SSD, Raid
Uninitialisierte Festplatte - Daten retten (11)

Frage von peterla zum Thema Festplatten, SSD, Raid ...