Top-Themen

Aktuelle Themen (A bis Z)

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, 2089 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 ..
Ähnliche Inhalte
Windows Tools
Reg query abfrage in batch mit goto
gelöst Frage von 114449Windows Tools4 Kommentare

Hallo zusammen, ich möchte eine REG_SZ Schlüssle in einer Batch abfragen und dann einen goto Sprung machen. die abfrage ...

Batch & Shell
Batch Abfrage Vergleiche mit Variable goto
gelöst Frage von ZunarasBatch & Shell4 Kommentare

Schönen guten Tag! ich habe mir ein Script gebastelt. Mehr nach dem Try and Error Prinzip als wirklichem Können. ...

Batch & Shell
If und GOTO in Batch
gelöst Frage von BoogiemanBatch & Shell7 Kommentare

Hallo :) Ich bringe mir zurzeit das Programmieren per JAVA und Batch bei bin nur bei manchem noch nicht ...

Batch & Shell
Batch Dateiabfrage. Wenn älter als dann goto
gelöst Frage von ZunarasBatch & Shell2 Kommentare

Hallo, ich bin am basteln und möchte in meiner Batch eine Abfrage einbauen. Hier das komplette Skript: Ich möchte ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 8 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 12 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 12 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 15 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...

Windows Server
Anmeldung direkt am DC nicht möglich
Frage von ThomasGrWindows Server15 Kommentare

Hallo, ich habe bei unserem Server 2016 Standard ein Problem. Keine Ahnung wie das auf einmal passiert ist. Ich ...

TK-Netze & Geräte
VPN-fähige IP-Telefone
Frage von the-buccaneerTK-Netze & Geräte14 Kommentare

Hi! Weiss noch jemand ein VPN-fähiges IP-Telefon mit dem man z.B. einen Heimarbeitsplatz gesichert anbinden könnte? Habe nur einen ...