Jump to content

Ausgabe von tasklist | find in Variable übergeben


Direkt zur Lösung Gelöst von massaraksch,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Hallo liebe Programmierprofis,

 

DOS ist für mich 20 Jahre her und ich bekomme es einfach nicht selber gebacken.

 

Für einen komplexe Benchmarklauf brauche ich die Anzahl der laufenden Programme, die dann über die Batch-Datei den Namen des Ergebnisses entsprechend festlegt:

 

Ich kriege es einfach nciht hin, ich hab auch noch nie mit Find und for und Tasklist gearbeitet - hab mir das alles zusammengegooglet - wahrscheinlich ist es nur eine Kleinigkeit:

@echo off
setlocal

:GetTotalMemory
for /F "skip=1" %%M in ('%SystemRoot%\System32\wbem\wmic.exe ComputerSystem get TotalPhysicalMemory') do set "TotalMemory=%%M" & goto GetAvailableMemory
:GetAvailableMemory
for /F "skip=1" %%M in ('%SystemRoot%\System32\wbem\wmic.exe OS get FreePhysicalMemory') do set "AvailableMemory=%%M" & goto ProcessValues
:ProcessValues
set "TotalMemory=%TotalMemory:~0,-6%"
set /A TotalMemory/=1073
set /A TotalMemory*=1024
set /A AvailableMemory/=1024
set /A UsedMemory=TotalMemory - AvailableMemory
set /A UsedPercent=(UsedMemory * 100) / TotalMemory

:echo Free memory:    %AvailableMemory% MB
:echo Total memory:   %TotalMemory% MB
:echo Used memory:    %UsedMemory% MB
:echo Memory usage:   %UsedPercent% %%

:::::::hier wirds noch korrekt ausgegeben - fällt dann weg, wenns funktioniert
TASKLIST /NH | FIND /C ".exe"
:pause - fällt dann weg, wenns funktioniert


REM -------------- HIER ist das Problem ------------------------
for /f %%i in ('TASKLIST /NH | FIND /C ".exe"') do Set AnzahlTasks=%%i
:::::::: Hier bricht die Batch ab

:pause - fällt dann weg, wenns funktioniert
:echo %AnzahlTasks% - fällt dann weg, wenns funktioniert
set "DateiName7=PCMark7Cmd.exe --secondarystorage=on --storagepath=C:\ --out=%RESULTDIR%\LenZ50-hddo-01024-064-%AnzahlTasks%-%AvailableMemory%-%UsedPercent%.pcmark-7-result"
:echo %DateiName7% - fällt dann weg, wenns funktioniert

echo %date:~0% - %time:~0,5%
rxpcc edit {86DC2354-794E-4CBD-89FF-45DE934F907E} -m 8192 -b 512 -s
rxpcc ls

PCMark.exe -repeat=3 -all=off -hdd=on LenZ50-hddo-08192-512-50-06904.pcr

:::::::::::::: da muß DateiName7 rein!
PCMark7Cmd.exe --secondarystorage=on --storagepath=C:\ --out=%DateiName7%

PCMark8Cmd.exe --secondarystorage=on --storagepath=C:\ --out=LenZ50-hddo-08192-512-50-06432.pcmark-8-result

rxpcc perf -a

echo %date:~0% - %time:~0,5%
rxpcc edit {86DC2354-794E-4CBD-89FF-45DE934F907E} -m 8192 -b 256 -s
rxpcc ls

:...
:...rxpcc edit {86DC2354-794E-4CBD-89FF-45DE934F907E} -m 8192 -b 128 -s
:...rxpcc edit {86DC2354-794E-4CBD-89FF-45DE934F907E} -m 8192 -b 064 -s
:...rxpcc edit {86DC2354-794E-4CBD-89FF-45DE934F907E} -m 8192 -b 032 -s :...
:...

endlocal

(Die Aufteilung in 2 Teile ist keine Absicht, irgendwas mit dem Code einfügen hab ich falsch gemacht, sorry)

 

Wie bekomme ich hier

set "DateiName7=PCMark7Cmd.exe --secondarystorage=on --storagepath=C:\ --out=%RESULTDIR%\LenZ50-hddo-01024-064-%AnzahlTasks%-%AvailableMemory%-%UsedPercent%>>>hier<<<.pcmark-7-result"

noch ein reales %-Zeichen hin?

 

Ich würde mich sehr freuen, wenn mir jemand helfen könnte... Sollte noch anderes drin sein, was unnötig ist, und ich nicht erkenne, bin auch dafür für Hinweise dankbar.

 

Vielen herzlichen Dank fürs Lesen, Eindenken und Antworten!

 

Elmar

bearbeitet von Hyperionnn
Link zu diesem Kommentar
  • Beste Lösung

Hi,

 

bei Problemen einfach mal den Befehl direkt im CLI testen...

E:\>for /f %i in ('TASKLIST /NH | FIND /C ".exe"') do Set AnzahlTasks=%i
"|" kann syntaktisch an dieser Stelle nicht verarbeitet werden.

Aha?

E:\>for /f %i in ('TASKLIST /NH ^| FIND /C ".exe"') do Set AnzahlTasks=%i
E:\>Set AnzahlTasks=76
E:\>echo %AnzahlTasks%
76

Voila! Das Pipe-Zeichen "escapen" mit ^

 

(nicht wundern... in der Batch natürlich wieder doppelte % nutzen)

Link zu diesem Kommentar
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...