Zum Inhalt springen

Empfohlene Beiträge

Geschrieben

Hallo an alle in diesem Forum.

Benötige wieder eure Hilfe, bin halt noch ein Anfänger.

Es geht um Folgendes: in einem Script werden laufende Prozesse aufgelistet und in Text-Datei umgeleitet. Sowei funktioniert es. Zu jedem Prozess wird auch die Speicherbelegung dargestellt.

Problem: wie bringe ich die Batch dazu, die Gesamtspeichernutzung am Ende zu berechnen und auszugeben?

Ist dies überhaupt möglich (rechnen)?

@echo off

echo.

echo Prozesse werden aufgelistet und

echo in "Prozessliste.txt" gespeichert

echo.

echo.

pause

echo %date% > prozessliste.txt

echo %time% >> prozessliste.txt

tasklist >> prozessliste.txt

echo. >> prozessliste.txt

echo ------------------------------------Ende--------------------------------------- >> Prozessliste.txt

echo.

ende

Geschrieben

Generell kann eine Batch-Datei mit "SET /A" begrenzt rechnen, aber selbst wenn du die Prozessliste mit "TASKLIST /FO CSV" ausgibst und in einer "FOR"-Schleife bearbeitest, müsstest du noch die "quotes" und die Speichernutzungs-Einheitsangabe ("K") entfernen...

Ich denke mit VBScript kommst du da schneller zum Ziel.

Gruss,

tester2k5

Geschrieben

Dachte nicht, dass es so kompliziert sein wird.

Und mit VBScript kenne ich mich überhaupt nicht aus.

Ich glaube, ich werde es lassen müssen, es seiden, gibt's doch noch eine andere Lösung mit Batch?

Geschrieben (bearbeitet)

Ich möchte die Gesamtspeicherbelegung des PC's auswerten, am besten mithilfe einer Batch-Datei.

Ideen?

Danke für die Links, aber die brigen mich nicht weiter.

Bearbeitet von fibron
geändert
Geschrieben

Mit folgendem Befehl kriegste (zumindest unter Windows7) nur die Speicherbelegungen ausgegeben:

CMD /V /C "FOR /F "skip=2 tokens=5 usebackq" %i IN (`tasklist /NH`) DO SET ZAHL=%i && ECHO !ZAHL:.=!"

Dieser Befehl gibt dir die Zahlen aus... ohne Punkte, Namen oder sonstigem unbenötigten Kram.

Nur noch zusammenzählen... :D

Geschrieben (bearbeitet)

Hach, Ändern nur innerhalb von 15 Minuten.....

Nimm den Befehl hier:

CMD /V /C "FOR /F "delims=, tokens=5 usebackq" %i IN (`tasklist /FO CSV`) DO SET TEMPZAHL1=%i && SET TEMPZAHL2=!TEMPZAHL1:.=! && SET TEMPZAHL3=!TEMPZAHL2: K=! && SET /A RAMWERT+=!TEMPZAHL3!/1024 && CLS && ECHO !RAMWERT!>C:\RAM.TXT"

Der Befehl schreibt dir in die Datei C:\RAM.TXT den aktuell verwendeten Speicher in MB (wenns KB sein solln einfach das "/1024" raushauen). Das Problem bei der Sache ist, dass er für jeden Prozess die Datei neu erstellt.... aber der Endwert stimmt. Da sag nochmal einer, dass man mit Batch nix anfangen kann :P

Aber: Prozesse mit Leerzeichen im Namen werden nicht mitgezählt!!!

Joa.... hoffe konnte helfen :)

//EDIT: Problem mit Leerzeichen im Namen beseitigt... soooooo :D

Bearbeitet von screama

Erstelle ein Benutzerkonto oder melde Dich an, um zu kommentieren

Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können

Benutzerkonto erstellen

Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!

Neues Benutzerkonto erstellen

Anmelden

Du hast bereits ein Benutzerkonto? Melde Dich hier an.

Jetzt anmelden

Fachinformatiker.de, 2024 by SE Internet Services

fidelogo_small.png

Schicke uns eine Nachricht!

Fachinformatiker.de ist die größte IT-Community
rund um Ausbildung, Job, Weiterbildung für IT-Fachkräfte.

Fachinformatiker.de App

Download on the App Store
Get it on Google Play

Kontakt

Hier werben?
Oder sende eine E-Mail an

Social media u. feeds

Jobboard für Fachinformatiker und IT-Fachkräfte

×
×
  • Neu erstellen...