Wie kann ich meinen RAM mit einer Batchfile auslesen?
Hallo, Allerseits.
Ich möchte ein kleines Programm per Batch programmieren. dort soll unter anderem der RAM angezeigt werden. Ich habe schon bei anderen Foren geguckt, bin aber irgendwie nicht schlau daraus geworden. Am Ende möchte ich, das der Ram mit einem echo Befehl Angezeigt werden soll, der ungefähr so Aussehen soll:
Meine Frage: wie definiere ich %RAM_AMOUNT%?
echo RAM: %RAM_AMOUNT% KB
2 Antworten
Einfach der Variable zuweisen.
Solltest du lediglich über %var% ohne echo ausgeben können.
Warum eigentlich über CMD? Wäre doch mit PowerShell viel einfacher und produktiver?
Hmm. Ich wusste nur das es bei Powershell mehr Befehle gibt; was ist denn da produktiver?
Es ist wesentlich einfacher zu lernen und umzusetzen.
Du kannst einfach den Output Pipen und ausgeben und einfach in eine Variable legen.
Beispiel:
$pattern = '[^0-9]'
[string] $var = ((wmic ComputerSystem get TotalPhysicalMemory) -replace $pattern)
[double] $var = $var
Ausgabe von $var = 14962454528
In Batch benötigst du riesige Codezeilen für sehr simple Dinge.
Ok. Es funktioniert. Aber funktioniert es auch unter CMD? wenn nicht, dann müsste ich doch das Programm komplett neu schreiben, oder?
Richtig, müsstest du. Ist aber nicht zu viel Arbeit und angenehmer im Nachhinein. Einige Befehle kann PowerShell von CMD übernehmen und ausführen.
Und ich müsste eine neue Sprache lernen. Kannst du mir vielleicht einen Grundkurs empfehlen?
Siehe mein Profil. :-)
Ich helfe gerne dabei, wenn gewünscht. Hierbei hast du eine OOP - also Objektorientierte Programmiersprache.
Einige Sachen dazu muss man lernen, helfe aber gerne dabei. Am liebsten über Try und Fail.
Du fragst, was du haben willst, ich erkläre es dir und du setzt es um - (Textuell über Discord zum Beispiel.)
Ansonsten gibt es Tutorials verstreut im Netz. Auch über LinkedIn.
Trotzdem: Kannst du mir den Code für CMD schicken?
Welchen Discord Link? Meinst du für die App?
http://discordapp.com/
Ansonsten halt über einen privaten Chat.
Wo hattest du denn den Code von mir hingeschrieben?
Den hier in die Powershell:
$pattern = '[^0-9]'
[string] $var = ((wmic ComputerSystem get TotalPhysicalMemory) -replace $pattern)
[double] $var = $var
in cmd. Aber ich kann, wie gesagt, "var" nicht auslesen.
Du müsstest es nicht mal als Variable speichern. Einfach
wmic ComputerSystem get TotalPhysicalMemory
eingeben. Das reicht und wirft das gewünschte Ergebnis aus.
Discord hast du schon mal genutzt?
Du musst mich bei Discord einfach über meinen Nick als Freund hinzufügen, dann nehme ich an und wir können chatten.
Hab ich schon probiert. Das hört sich jetzt vielleicht banal an, aber bei den anderen Infos gibt es, im gegensatz zu dem Befehl, kein Zeilenumbruch. ich würde es gerne Einheitlich machen. Und Außerdem ist es so unübersichtlicher. Deshalb ja auch mit der Variable.
Dann müsstest du Replacen und Converten. Das wird aber mit CMD/Batch nichts.
Nein. Dafür ist CMD nicht ausgelegt. Bzw, es geht soweit in eine wirklich verwirrende Tiefe in einem Workaround, bei der ich dir nicht helfen kann.
Ich habe noch eine Idee: ich kann Das vielleicht einschieben.
Ich habe es jetzt eingeschoben. funktioniert. Ich hätte noch eine Frage: Wie kann ich die Windows Edition herausfinden (home, enterprise, pro, usw)?
Google dazu mal WMIC. https://www.lisenet.com/2014/get-windows-system-information-via-wmi-command-line-wmic/
Hier stehen einige Sachen.
wmic OS get Caption
Und den RAM in GB auslesen? Geht das ohne großen Aufwand?
Dafür müsstest du das Objekt des wmic des RAMs auslesen und teilen. Funktioniert aber nicht, da du dann wieder separieren musst und WMIC in Byte ausgibt.
OK. Aber kann ich ohne Zeilenumbruch dahinterschreiben in welchem Format die Angabe ist?
Ok. Den Befehl hab ich schon ausprobiert. Wie kann ich das denn jetzt in die Beispielvariable reinschreiben?
Entschuldigung; ich habe erst gestern angefangen.
Alles gut. :-)
Z.B.
wmic ComputerSystem get TotalPhysicalMemory > var
Ausgabe von %var%:
TotalPhysicalMemory
14962454528
Wie kann ich dann %var% auslesen? hab es gerade mit echo probiert; und es hat mir %var% angezeigt. Was mache ich falsch? Ich habe beide Befehle ausgeführt.
Ich weiß zwar das ich 8 gb RAM habe, aber wenn man Rechner neu installiert weiß man das ja ohne Win + pause oder win+ x ->System ja nicht. Ich will alles an einem Platz haben.
@echo off
for /f "tokens=*" %%a in ('wmic os get FreePhysicalMemory^,FreeVirtualMemory^,TotalVirtualMemorySize^,TotalVisibleMemorySize /value ^|find "="') do (
set /a "__%%a"
)
rem (kann weg) erzeugte Varablen anzeigen:
echo gesetzte Variablen:
set "__"
echo:
echo Gesamt Physikalischer Speicher : %__TotalVisibleMemorySize% kByte
echo Freier Physikalischer Speicher : %__FreePhysicalMemory% kByte
echo Gesamt virtueller Speicher : %__TotalVirtualMemorySize% kByte
echo Freier virtueller Speicher : %__FreeVirtualMemory% kByte
pause
Ich wollte ein Programm programmieren, mit dem man Nachdem man Windows installiert hat, direkt standartprogramme installieren und sich die Systeminfos Anzeigen lassen kann. (Ganz unten unter esi.)