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, 8495 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 ..
Neuester Wissensbeitrag
CPU, RAM, Mainboards

Angetestet: PC Engines APU 3a2 im Rack-Gehäuse

(2)

Erfahrungsbericht von ashnod zum Thema CPU, RAM, Mainboards ...

Ähnliche Inhalte
SAN, NAS, DAS
gelöst HP-Proliant Microserver Betriebssystem (15)

Frage von Yannosch zum Thema SAN, NAS, DAS ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

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

Frage von JayyyH zum Thema Switche und Hubs ...

DSL, VDSL
DSL-Signal bewerten (13)

Frage von SarekHL zum Thema DSL, VDSL ...

Windows Server
Mailserver auf Windows Server 2012 (9)

Frage von StefanT81 zum Thema Windows Server ...