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

Betriebssystem per Batch bestimmen

Frage Entwicklung Batch & Shell

Mitglied: Sp33dy

Sp33dy (Level 1) - Jetzt verbinden

28.12.2009 um 12:24 Uhr, 8546 Aufrufe, 6 Kommentare

Hi
also habe noch ein Problem

habe vorhin schaun wollen ob ich mit einer Batch das Betriebssystem unterscheiden könnte
Habe auch einige Themen/Beiträge durchgelsen und mit dann sowas zusammengebastelt

Weiß jetzt aber nicht wie man dieses Code-Feld macht

@echo off & setlocal
wmic path win32_operatingsystem get caption
wmic path win32_operatingsystem get caption^|FINDSTR "Windows 7" && goto WIN7
wmic path win32_operatingsystem get caption^|FINDSTR "Windows Vista" && goto WINVI
wmic path win32_operatingsystem get caption^|FINDSTR "Windows XP" && goto WINXP
cls
:WIN7
set /p ver="Windows 7"
goto TEST
:WINVI
set /p ver="Windows Vista"
goto TEST
:WINXP
set /p ver="Windows XP"
goto TEST
:TEST
if exist %windir%\SysWOW64\NUL goto X64 else goto X32
:X32
echo Sie haben %ver% 32bit
goto ENDE
:X64
echo Sie haben %ver% 64bit
goto ENDE
:ENDE
pause

Jedenfalls wird angezeigt welche WinVersion man hat aber nur sehr kurz danach wird immer "Windows 7" angezeigt aber ich weiß nicht wo der Fehler liegt
Habs bei meinem Kumpel getestet bei ihm wird ca für 0,5 sek angezeigt "Windows Vista 64bit",was auch stimmt, aber danach "Windows 7"
Mitglied: Arano
28.12.2009 um 12:50 Uhr
Ich kann da so keinen Fehler erkennen, aber bin auch kein Windows Anwender mehr.

Du könntest aber mal das versuchen:
01.
.. 
02.
... 
03.
wmic path win32_operatingsystem get caption^|FINDSTR "Windows XP" && goto WINXP 
04.
cls 
05.
echo Unbekannte Windows Version 
06.
goto ENDE 
07.
:WIN7 
08.
... 
09.
..
Denn wenn der obere "Krams" kein passendes Ergebnis bringt, wird das Programm ja trotzdem weiter abgearbeitet ! Und "Windows 7" ist die Version die als erstes in der Variable gespeichert wird.
So gäbe es die Meldung dass das Betriebssystem nicht erkannt wurde und das Programm beended.

~Arano
Bitte warten ..
Mitglied: Sp33dy
28.12.2009 um 13:15 Uhr
hmmm

Wie müsste ich die BatchDatei abändern damit es genau das macht was ich bezwecke

Komme irgendwie nicht weiter
Bitte warten ..
Mitglied: Xaero1982
28.12.2009 um 13:29 Uhr
Ahoi,

01.
@echo off & setlocal  
02.
wmic path win32_operatingsystem get caption|FINDSTR /c:"Windows 7" && goto WIN7 
03.
wmic path win32_operatingsystem get caption|FINDSTR /c:"Windows Vista" && goto WINVI 
04.
wmic path win32_operatingsystem get caption|FINDSTR /c:"Windows XP" && goto WINXP 
05.
 
06.
 
07.
:WIN7 
08.
set ver="Windows 7" 
09.
goto BIT 
10.
 
11.
:WINVI 
12.
set ver="Windows Vista" 
13.
goto BIT 
14.
 
15.
:WINXP 
16.
set ver="Windows XP" 
17.
goto BIT 
18.
 
19.
:BIT 
20.
if exist %windir%\SysWOW64\NUL goto X64 else goto X32 
21.
 
22.
:X32 
23.
echo Sie haben %ver% 32bit 
24.
goto END 
25.
 
26.
:X64 
27.
echo Sie haben %ver% 64bit 
28.
goto END 
29.
 
30.
:END 
31.
pause 
32.
endlocal
LG
Edit: Was die "^" und das "/p" da zu suchen haben kA Set /p erfordert nen Prompt und ^ liefert invalid get expression...
Bitte warten ..
Mitglied: DerSchorsch
28.12.2009 um 13:31 Uhr
Hallo,

versuchs mal damit:
01.
@echo off 
02.
setlocal 
03.
wmic path win32_operatingsystem get caption|FINDSTR /C:"Windows 7" && goto WIN7 
04.
wmic path win32_operatingsystem get caption|FINDSTR /C:"Windows Vista" && goto WINVI 
05.
wmic path win32_operatingsystem get caption|FINDSTR /C:"Windows XP" && goto WINXP 
06.
cls 
07.
:WIN7 
08.
set osver="Windows 7" 
09.
goto TEST 
10.
:WINVI 
11.
set osver="Windows Vista" 
12.
goto TEST 
13.
:WINXP 
14.
set osver="Windows XP" 
15.
goto TEST 
16.
:TEST 
17.
if exist %windir%\SysWOW64\NUL goto X64 else goto X32 
18.
:X32 
19.
echo Sie haben %osver% 32bit 
20.
goto ENDE 
21.
:X64 
22.
echo Sie haben %osver% 64bit 
23.
goto ENDE 
24.
:ENDE 
25.
pause 
26.
endlocal
Das ^ vor der Pipe | gehört da nicht hin.
findstr "Windows XP" sucht nach Windows oder XP, bei dem Parameter /C: muss die Zeichenfolge komplett stimmen.
set /p wartet auf einen Prompt
und %ver% ist vom Betriebssystem schon belegt (geht aber, da du mit setlocal arbeitest) Edit: Sorry, ver ist ein Befehl, keine Variable
zu einem setlocal gehört auch ein endlocal

Gruß,
Schorsch
Bitte warten ..
Mitglied: rubberman
28.12.2009 um 13:36 Uhr
Hallo Sp33dy,

habe das ganze nicht getestet, aber was auffällt ist folgendes:
01.
wmic path win32_operatingsystem get caption^|FINDSTR "Windows 7" && goto WIN7
So sieht es bei dir aus.
- Die Maskierung der Pipe außerhalb einer FOR Schleife ist Unsinnn.
- Bei FINDSTR wird zudem nach Windows ODER 7 gesucht.
Also ändere die entsprechenden Zeilen erst mal in der Form ab:
01.
wmic path win32_operatingsystem get caption|FINDSTR /c:"Windows 7" && goto WIN7
Grüße
rubberman

<EDIT>
Moin DerSchorsch und Xaero1982, da wollten wir uns wohl gegenseitig überholen
</EDIT>
Bitte warten ..
Mitglied: Sp33dy
28.12.2009 um 13:44 Uhr
Danke euch allen

Wäre wohl nicht so schnell darauf gekommen^^
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Batch bestimme Zeile einer vorherigen batch einfügen (9)

Frage von Frensche zum Thema Batch & Shell ...

Windows Installation
gelöst Vorinstalliertes Betriebssystem auslesen (BIOS) (14)

Frage von Yauhun zum Thema Windows Installation ...

Windows 10
gelöst Standartprogramme nach Dateiendung bestimmen (3)

Frage von tomaschku zum Thema Windows 10 ...

Neue Wissensbeiträge
Windows Server

Umstellung SHA 1 auf SHA 2 - Migration der CA von CSP auf KSP

Tipp von Badger zum Thema Windows Server ...

Windows 10

Quato DTP94 unter Windows 10 x64 installieren und verwenden

Anleitung von anteNope zum Thema Windows 10 ...

Windows 10

Win10 1703 und Nutzerkennwörter bei Ersteinrichtung - erstaunliche Erkenntnis

(15)

Erfahrungsbericht von DerWoWusste zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Internet
gelöst Jeden morgen Internet-Probleme (56)

Frage von pjrtvly zum Thema Internet ...

Server-Hardware
HP DL380 G7: Booten vom USB via USB 3.1-PCI-e Karte möglich? (24)

Frage von Paderman zum Thema Server-Hardware ...

Windows 7
Bluesreens unternehmensweit (22)

Frage von SYS64738 zum Thema Windows 7 ...

LAN, WAN, Wireless
gelöst IP Adressen - Modem - Switch - Accesspoint (22)

Frage von teuferl82 zum Thema LAN, WAN, Wireless ...