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

DOS Batch OS Abfragen und weitere Befehle abarbeiten ( Goto - Label )

Frage Entwicklung Batch & Shell

Mitglied: simmersurfer

simmersurfer (Level 1) - Jetzt verbinden

25.02.2013, aktualisiert 10.04.2013, 2040 Aufrufe, 4 Kommentare

Hallo,
auch wenn es diese in ähnlicher Art bestimmt schon gab, so helfen mir verschiedene Beiträge nicht weiter. Daher nun als neuer Beitrag.

Der Ablauf bzw. das Erkennen des Operating Systems ist ok ( es erscheint z.B. W7 ), nur wird dann nicht weiter zum Label :OS_W7 gesprungen, sondern Zeile für Zeile weiter abgearbeitet ( test123... erscheint ).
Der ping ist für mich nur wie ein sleep...


Was ist hier verkehrt?

Vielen Dank für eure Hilfe
Schöne Grüße aus HH

01.
 
02.
ver |findstr . | (find /v " 5.1" || echo XP && goto :OS_XP) | (find /v  " 6.1" || echo W7 && goto :OS_W7) | (find /v "." || echo Anderes && goto :Anderes ) 
03.
 
04.
echo test123_falscherWeg 
05.
 
06.
:OS_XP 
07.
echo Hier sind XP Befehle 
08.
ping -n 5 127.0.0.1 > NUL 
09.
exit /b  
10.
 
11.
:OS_W7 
12.
echo Hier sind W7 Befehle 
13.
ping -n 5 127.0.0.1 > NUL 
14.
exit /b 
15.
 
16.
:Anderes 
17.
echo Anderes OS - keine Befehle 
18.
ping -n 5 127.0.0.1 > NUL 
19.
exit /b 
20.
 
Mitglied: Snowman25
25.02.2013 um 16:53 Uhr
Hallo simmersurfer,

Der &&-Operator führt nur dann den rechten Befehl aus, wenn der ERRORLEVEL auf 0 steht. Allerdings setzt ECHO diesen auf 1.
Benutze den &-Operator hierfür!

Gruß
Snow
Bitte warten ..
Mitglied: simmersurfer
26.02.2013 um 11:53 Uhr
Hallo Snow,
danke für die Antwort, das hatte ich so schon einmal getestet - und hilft leider auch nicht...

01.
... echo W7 & goto :OS_W7...

Gruß
Bitte warten ..
Mitglied: Snowman25
26.02.2013 um 12:20 Uhr
Hey,

Sorry, hatte da 'nen Wurm beim Testen drin. ECHO fasst den Errorlevel garnicht an.
FIND Gibt einen Errorlevel von 1 aus, wenn der Suchbegriff nicht gefunden wurde. Jedoch scheint der Errorlevel IMMER 0 zu sein, wenn der /v-Paramenter vorhanden ist.
Das heißt, dass der erste Teil der Win7-Abfrage ERFOLGREICH ist und somit der Rest nicht ausgeführt werden sollte, da du den ||-Operator verwendest. Dies gilt auch für alle anderen Abfragen. Hier macht dir die Präzedenz der Operatoren einen Strich durch die Rechnung.
Klammer das ganz ordentlich und unmissverständlich ein, dann sollte es auch gehen. Falls nicht musst du den Weg über Hilfsvariablen und mehrzeilige IF-Statements gehen.

Gruß
Snow
Bitte warten ..
Mitglied: simmersurfer
26.02.2013 um 14:36 Uhr
Hallo,
habe nach den Errorlevels gesucht und ein Script gefunden, was ich nun angepasst habe. Das hilft mir jetzt für die weiteren Befehle etc. absolut weiter...

Ist etwas mehr, aber falls es jemand doch gebrauchen kann, setze ich das hier mit rein.

Snow, Schönen Dank!


01.
@echo off 
02.
 
03.
ver | find "2003" > nul 
04.
if %ERRORLEVEL% == 0 goto ver_2003 
05.
 
06.
ver | find "XP" > nul 
07.
if %ERRORLEVEL% == 0 goto ver_xp 
08.
 
09.
ver | find "2000" > nul 
10.
if %ERRORLEVEL% == 0 goto ver_2000 
11.
 
12.
if not exist %SystemRoot%\system32\systeminfo.exe goto warnexit 
13.
 
14.
REM bezeichnung deutsch / englisch beachten!!! 
15.
systeminfo | find "Betriebssystemname" > %TEMP%\osname.txt 
16.
FOR /F "usebackq delims=: tokens=2" %%i IN (%TEMP%\osname.txt) DO set vers=%%i 
17.
 
18.
echo %vers% | find "Windows 7" > nul 
19.
if %ERRORLEVEL% == 0 goto ver_7 
20.
 
21.
echo %vers% | find "Windows 8" > nul 
22.
if %ERRORLEVEL% == 0 goto ver_8 
23.
 
24.
REM evtl. im englischen doppelR in Serverr !!! 
25.
echo %vers% | find "Windows Server 2008" > nul 
26.
if %ERRORLEVEL% == 0 goto ver_2008 
27.
 
28.
echo %vers% | find "Windows Vista" > nul 
29.
if %ERRORLEVEL% == 0 goto ver_vista 
30.
 
31.
goto warnexit 
32.
 
33.
:ver_7 
34.
:Run Windows 7 specific commands here. 
35.
echo Windows 7 
36.
goto exit 
37.
 
38.
:ver_8 
39.
:Run Windows 8 specific commands here. 
40.
echo Windows 8 
41.
goto exit 
42.
 
43.
:ver_2008 
44.
:Run Windows Server 2008 specific commands here. 
45.
echo Windows Server 2008 
46.
goto exit 
47.
 
48.
:ver_vista 
49.
:Run Windows Vista specific commands here. 
50.
echo Windows Vista 
51.
goto exit 
52.
 
53.
:ver_2003 
54.
:Run Windows Server 2003 specific commands here. 
55.
echo Windows Server 2003 
56.
goto exit 
57.
 
58.
:ver_xp 
59.
:Run Windows XP specific commands here. 
60.
echo Windows XP 
61.
goto exit 
62.
 
63.
:ver_2000 
64.
:Run Windows 2000 specific commands here. 
65.
echo Windows 2000 
66.
goto exit 
67.
 
68.
:warnexit 
69.
echo Betriebssystem unbekannt. 
70.
 
71.
:exit 
72.
 
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst Batch Abfrage Vergleiche mit Variable goto (4)

Frage von Zunaras zum Thema Batch & Shell ...

Batch & Shell
gelöst In Batch variable DOS-Funktion von "größer" und "kleiner" Zeichen unterdrücken (3)

Frage von Markus5579 zum Thema Batch & Shell ...

Windows Tools
gelöst Powershell Befehle aus Batch-Datei falsch überetzt? (2)

Frage von Chillministrator zum Thema Windows Tools ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

Microsoft Office
Keine Updates für Office 2016 (11)

Frage von Motte990 zum Thema Microsoft Office ...