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