DOS-Programm

Hallo, ich soll ein BATCH-Programmfür DOS bzw. WINDOWS programmieren, mit dem es möglich ist

  1. verschiedene Computerdaten auszulesen (also z.b. Grafikkarte, CPU geschwindigkeit…)
  2. diese sollen dann mit vorher von mir festgelegten Werten verglichen werden.
    2.1 wenn alle angaben die er bei 1. herausgesucht hat, mit den von 2. übereinstimmen, oder sie überbieten, also höher sind, soll er mit dem echo Kommando etwas ausgeben
    2.2 falls auch nur eine angabe, nicht übereinstimmt, oder aber unter der jeweiligen zahl ist, soll er mit dem echo befehl, etwas anderes ausgeben

FRAGE: Wie realisiere ich das Programm, oder ist es gtarnicht möglich, Vergleiche unter Dos herzubeziehen, beziehungswieise Computerdaten anzuzeigen. Wie sind die Befehle für das Daten auslesen und vergleichen?

Ich bin für jede Hilfe dankbar!

Hallo Experte-2006

Hallo, ich soll ein BATCH-Programmfür DOS bzw. WINDOWS
programmieren, mit dem es möglich ist

  1. verschiedene Computerdaten auszulesen (also z.b.
    Grafikkarte, CPU geschwindigkeit…)
  2. diese sollen dann mit vorher von mir festgelegten Werten
    verglichen werden.
    2.1 wenn alle angaben die er bei 1. herausgesucht hat, mit den
    von 2. übereinstimmen, oder sie überbieten, also höher sind,
    soll er mit dem echo Kommando etwas ausgeben
    2.2 falls auch nur eine angabe, nicht übereinstimmt, oder aber
    unter der jeweiligen zahl ist, soll er mit dem echo befehl,
    etwas anderes ausgeben
    FRAGE: Wie realisiere ich das Programm, oder ist es gtarnicht
    möglich, Vergleiche unter Dos herzubeziehen, beziehungswieise
    Computerdaten anzuzeigen. Wie sind die Befehle für das Daten
    auslesen und vergleichen?

Also, ich lasse mich ja gern belehren, aber mit einem normalen batch-Programm für DOS wird sich das wohl nicht machen lassen. Du kannst wahrscheinlich C oder C++ Programme schreiben (oder sicher Assembler-Programme), die diese Werte auslesen und dann, eventuell, eine Batch-Datei, die die eigentlichen Programme verbindet und die Ausgabe organisiert, aber ich denke, wenn Du dann alles mit C++ gemacht hast, kannst Du den Rest (das Vergleichen) auch gleich noch mit C++ erschlagen. Wozu dann noch eine Batchdatei?

Trotzdem viel Erfolg
Klaus Bernstein

Das liegt daran, das ich nur DOS-BATCH kann! :frowning:

Das liegt daran, das ich nur DOS-BATCH kann! :frowning:

Dadu gefragt hast ob man überhaupt vergleiche anstellen kann bei einer BATCH-Datei (was geht) kannst du offensichtlich nichtmal das.

Fürdas was du vorhast solltest dudich zumindest mit VBScript auseinandersetzen.
Weil um werte Abfragen zu können musst du die vermutlich Parsen (sprich den ganzen Müll der um die Werte drumrumsteht ausschneiden)
Dies ist aber nur mit BATCH sehr schwer.

Willst du es dennoch versuchen brauchst du Programme die die Werte bereits ausgeben (weil Batch ist mehr für das bedingte starten von Programmen da, nicht für Anwendungsentwicklung)

Hallo Mathias,

Das liegt daran, das ich nur DOS-BATCH kann! :frowning:

Na ja, dem kann man abhelfen. Du kannst auch andere Sachen lernen, aber für dein Projekt ist es wahrscheinlich ein wenig zu spät, ausser Du hast ca. ein Jahr Zeit um das zu verwirklichen, oder Du bist ein kleines Genie und lernst eine Programmiersprache in einer Woche.
Aber wenn Du deine schon vorhandenen Batch-Programmierkenntnisse erweitern willst, kann ich dir nur diese Seite empfehlen:
http://www.ericphelps.com/
Mehr Batch-Programmierung habe ich noch nicht gefunden… Aber auch Windows Scripting Host ist vertreten. Vielleicht kannst Du damit die gewünschten Hardware-Daten auslesen, vergleichen usw.? Ich weiss es nicht, ich weiss nur, dass es rein mit DOS-Batch-Programmierung wahrscheinlich nicht geht.

Viele Grüsse
Klaus Bernstein

Hallo!

Es ist nicht direkt DOS-Batch, aber vielleicht kannst Du ja etwas damit anfangen: http://msdn2.microsoft.com/en-us/library/aa394587.aspx .

Damit bekommt man z.B. so etwas hin:Skript si.vbs:
---------- SCHNIPP ------------
strComputer = „.“
Set objWMIService = GetObject(„winmgmts:“ _
& „{impersonationLevel=impersonate}!\“ & strComputer & „\root\cimv2“)
Set colSettings = objWMIService.ExecQuery _
(„SELECT * FROM Win32_OperatingSystem“)
For Each objOperatingSystem in colSettings
Wscript.Echo "OS Name: " & objOperatingSystem.Name
Wscript.Echo "Version: " & objOperatingSystem.Version
Wscript.Echo "Service Pack: " & _
objOperatingSystem.ServicePackMajorVersion _
& „.“ & objOperatingSystem.ServicePackMinorVersion
Wscript.Echo "OS Manufacturer: " & objOperatingSystem.Manufacturer
Wscript.Echo "Windows Directory: " & _
objOperatingSystem.WindowsDirectory
Wscript.Echo "Locale: " & objOperatingSystem.Locale
Wscript.Echo "Available Physical Memory: " & _
objOperatingSystem.FreePhysicalMemory
Wscript.Echo "Total Virtual Memory: " & _
objOperatingSystem.TotalVirtualMemorySize
Wscript.Echo "Available Virtual Memory: " & _
objOperatingSystem.FreeVirtualMemory
Wscript.Echo "OS Name: " & objOperatingSystem.SizeStoredInPagingFiles
Next
Set colSettings = objWMIService.ExecQuery _
(„SELECT * FROM Win32_ComputerSystem“)
For Each objComputer in colSettings
Wscript.Echo "System Name: " & objComputer.Name
Wscript.Echo "System Manufacturer: " & objComputer.Manufacturer
Wscript.Echo "System Model: " & objComputer.Model
Wscript.Echo "Time Zone: " & objComputer.CurrentTimeZone
Wscript.Echo "Total Physical Memory: " & _
objComputer.TotalPhysicalMemory
Next
Set colSettings = objWMIService.ExecQuery _
(„SELECT * FROM Win32_Processor“)
For Each objProcessor in colSettings
Wscript.Echo "System Type: " & objProcessor.Architecture
Wscript.Echo "Processor: " & objProcessor.Description
Next
Set colSettings = objWMIService.ExecQuery _
(„SELECT * FROM Win32_BIOS“)
For Each objBIOS in colSettings
Wscript.Echo "BIOS Version: " & objBIOS.Version
Next
---------- SCHNAPP ------------Starte das Skript mittels „cscript si.vbs“ aus der Kommandozeile heraus.

Gruß
Volkmar

[Bei dieser Antwort wurde das Vollzitat nachträglich automatisiert entfernt]