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

Betriebssystem-Version in eine Variable übernehmen

Frage Entwicklung Batch & Shell

Mitglied: Flauschbobbel

Flauschbobbel (Level 1) - Jetzt verbinden

05.05.2008, aktualisiert 22:05 Uhr, 8036 Aufrufe, 6 Kommentare

Hallo Zusammen,

ich möchte in einem Script abfragen, ob das Script auf einem XP-Client (Windows XP Professional) läuft.
Wenn nicht, dass soll das Script beendet werden. Die %OS% Variable kann ich nicht abfagen, da die ja nur
Windows_NT zurückliefert, auch wenn XP auf dem Client läuft.

Ich habe das Script wie folgt gebaut:

01.
@echo off & setlocal 
02.
set OSXP= 
03.
 
04.
:: zur Info 
05.
wmic path win32_operatingsystem get caption 
06.
 
07.
for /f "tokens=2" %%i in ('wmic path win32_operatingsystem get caption^|FINDSTR "XP Professional"') do ( 
08.
	echo Client ist XP Professional-Rechner 
09.
	set OSXP=True 
10.
	echo %OSXP% 
11.
12.
 
13.
echo %OSXP% 
14.
if defined %OSXP% goto AAA 
15.
echo client ist kein XP-rechner 
16.
goto ende 
17.
 
18.
:AAA 
19.
echo client ist xp-rechner 
20.
 
21.
:ENDE 
22.
echo ende!
Es kommt die Anzeige:
01.
Client ist XP Professional-Rechner 
02.
Echo ist ausgeschaltet (OFF). 
03.
True 
04.
client ist kein XP-rechner 
05.
ende!
D.h., es wird in der For-Schleife meine Variable nicht gesetzt. Könnt ihr mir einen Tipp geben warum?
Oder wie kann ich mein Problem sonst noch lösen? Die Variable windir kann ich nicht nutzen, da auf den Clients die
Windows-Verzeichnisse nicht Standard sind (Die Variable verweist ja standardmäßig bei Windows 2000 auf C:\WINNT und bei Windows XP auf C:\Windows, leider nicht bei mir)...

Grüße,
Flauschbobbel
Mitglied: Biber
05.05.2008 um 20:49 Uhr
Moin Flauschbobbel,

das "ECHO is' EINgerastet" kommt von dieser Stelle:
01.
 FOR /F in  ..sülzdibülz..... DO ( 
02.
..... 
03.
	set OSXP=True 
04.
	echo %OSXP%           ----> hier kommts her 
05.
06.
echo %OSXP%
Dieses ganze FOR-Gelumpe ist, auch wenn Du es ästhetisch und ordentlich ausgerichtet lesbar auf mehrere Zeilen verteilt hast (was sinnvoll ist!) für die CMD.exe EINE Anweisung.

Dementsprechend werden alle Variablen in dieser Zeile EINMAL aufgelöst, bevor die Ausführung losgeht.
(M$-Praktikanten sind ja nich' blöd... sondern effektiv.)

Abhilfe (die sinnvolle der drei möglichen): nach der FOR-Anweisungs-"ZEILE" prüfen.
01.
 FOR /F in ..( ..) DO ( 
02.
	set OSXP=True 
03.
04.
if defined OSXP echo [Debug] ...es ist ein XP 
05.
...
Zum OS-Version-Ermitteln haben wir auch schon mal ein, zwei Tutorials zusammengeharkt in "Batch & Shell".

Grüße
Biber
Bitte warten ..
Mitglied: miniversum
05.05.2008 um 20:58 Uhr
Versuchs mal so:
01.
@echo off & setlocal 
02.
:: zur Info 
03.
wmic path win32_operatingsystem get caption 
04.
 
05.
wmic path win32_operatingsystem get caption^|FINDSTR "XP Professional" && goto:AAA 
06.
 
07.
echo client ist kein XP-rechner 
08.
goto ende 
09.
 
10.
:AAA 
11.
echo Client ist XP Professional-Rechner 
12.
echo client ist xp-rechner 
13.
 
14.
:ENDE 
15.
echo ende!
Bitte warten ..
Mitglied: Flauschbobbel
05.05.2008 um 21:30 Uhr
Hallo miniversum,

danke für den Tip. Leider geht es nicht so richtig...

Das ist der Output:

Caption
Microsoft Windows XP Professional

Ungültiger GET-Ausdruck.
client ist kein XP-rechner
ende!

Grüße,
Flauschbobbel
Bitte warten ..
Mitglied: bastla
05.05.2008 um 21:45 Uhr
Hallo Flauschbobbel!

Lass das "^" vor dem "|" weg ...

... und verwende beim "findstr" zur Sicherheit den Schalter "/c" (sonst gibt sich noch ein "XP Home" als "Professional" aus).

Grüße
bastla

[Edit] @Biber: Eigentlich behauptest Du doch immer, ich würde rechts überholen ... [/Edit]
[Edit2] ... könntest Du beidseitig überholen ...
Eigentlich wäre anstelle von "überholen" schon eher "überrollen" angebracht ... wobei ich allerdings sehr sicherheitsbewusst und daher immer mit ausgefahrenem Airbag unterwegs bin ...
Im Übrigen sind mir "Gerüchte" relativ egal - was zählt, sind "Gerichte". [/Edit2]
Bitte warten ..
Mitglied: Biber
05.05.2008 um 21:46 Uhr
Moin Flauschbobbel,

a)
Leider ### es nicht so richtig
Ihr sollt nicht immer ### sagen...
b) lass das Caret ("^") weg. In der Halbzeile ist nichts zu maskieren.
Grüße
Biber

[Edit] bastla hat wieder links überholt... *winkzzz* [/Edit]
[Edit2] ...Eigentlich behauptest Du doch immer, ich würde rechts überholen ...
na ja, es geht das Gerücht, seit Ende der Fastenzeit könntest Du beidseitig überholen... gleichzeitig... <ganzbreitgrinz>[/Edit2]
Bitte warten ..
Mitglied: Flauschbobbel
05.05.2008 um 22:05 Uhr
Hallo bastla, biber,

vielen herzlichen Dank! Es funktioniert.

@Biber:
Ich gelobe Besserung und werde ### nicht mehr schreiben. Leider ist es mir in einer anderen Beitrag zwischenzeitlich wieder "herausgerutscht"... Tschuldigung!

Grüße,
Flauschbobbel
Bitte warten ..
Ähnliche Inhalte
Ubuntu
PHP-Version mit Bash in Variable schreiben?
gelöst Frage von StefanKittelUbuntu11 Kommentare

Hallo, hat Jemand ein fertiges Skript um die aktuelle PHP-Version in eine Variable in Bash zu schreiben? Die Ausgaben ...

Batch & Shell
Variablenanordnung aus einer TXT Datei als aufgelöste Variable übernehmen?
Frage von KriegstreiberBatch & Shell1 Kommentar

Hallo alle zusammen und schönes Wochenende, wieder einmal ne etwas komplizierte Geschichte. Ich versuche das zu erklären: In einer ...

Microsoft Office
Tabelleninhalt übernehmen
Frage von jonibaMicrosoft Office8 Kommentare

Hallo Leute! Ich benötige Hilfe bei Excel 2010 Ich habe eine Abrechnugstabelle wo ich Tankbelege eintrage. Von einer anderen ...

Festplatten, SSD, Raid
Betriebssystem herausfinden
Frage von UliSchlesingerFestplatten, SSD, Raid10 Kommentare

Hallo, ich habe eine Festplatte mit Betriebssystem bekommen. Keiner weiß welches BS drauf ist. Wenn ich die HDD in ...

Neue Wissensbeiträge
Windows 10

Autsch: Microsoft bündelt Windows 10 mit unsicherer Passwort-Manager-App

Tipp von kgborn vor 2 StundenWindows 10

Unter Microsofts Windows 10 haben Endbenutzer keine Kontrolle mehr, was Microsoft an Apps auf dem Betriebssystem installiert (die Windows ...

Sicherheits-Tools

Achtung: Sicherheitslücke im FortiClient VPN-Client

Tipp von kgborn vor 4 StundenSicherheits-Tools

Ich weiß nicht, wie häufig die NextGeneration Endpoint Protection-Lösung von Fortinet in deutschen Unternehmen eingesetzt wird. An dieser Stelle ...

Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 18 StundenInternet3 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 22 StundenDSL, VDSL1 Kommentar

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

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 ...

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

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

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 ...

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 ...