Variable enthält nur den letzten Wert
Hallo,
bin hier gerade am verzweifeln.
Ich möchte einen Variable auf das vorkommen eines bestimmten Strings prüfen.
Das klapp soweit, nur enthält die Variable immer das gleiche.
Die Ausgabe zeigt mir das er den SET (Zeile 7) richtig befüllt. Nur enthält die Variable in Zeile 8 wieder den aller letzten Wert.
Code:
Hoffe ihr könnte mit trotz Brückentag helfen.
Daniel
bin hier gerade am verzweifeln.
Ich möchte einen Variable auf das vorkommen eines bestimmten Strings prüfen.
Das klapp soweit, nur enthält die Variable immer das gleiche.
Die Ausgabe zeigt mir das er den SET (Zeile 7) richtig befüllt. Nur enthält die Variable in Zeile 8 wieder den aller letzten Wert.
C:\check_mk>(
SET str=235 Unknown_Attribute 0x0012 099 099 --- Old_age Always - 21
echo 241 Total_LBAs_Written 0x0032 099 099 --- Old_age Always - 6044528992 | findstr /i "Always" 1>nul
If "9009" == "0" (echo "235 Unknown_Attribute 0x0012 099 099 --- Old_age Always - 21" )
)
Code:
@echo on
echo ^<^<^<smart^>^>^>
for /f "delims=# tokens=1,2" %%i in ('smartctl.exe --scan') do (
for /f "delims=, tokens=2" %%x in ("%%j") do (
if "%%x" == " ATA device" (
for /f "tokens=*" %%p in ('smartctl.exe -A %%i') do (
SET str=%%p
echo %str% | findstr /i "Always" > nul
If "%errorlevel%"=="0" (
echo "%%p"
)
)
)
)
)
)
Hoffe ihr könnte mit trotz Brückentag helfen.
Daniel
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 305546
Url: https://administrator.de/forum/variable-enthaelt-nur-den-letzten-wert-305546.html
Ausgedruckt am: 13.04.2025 um 19:04 Uhr
4 Kommentare
Neuester Kommentar

Typischer Batch Fehler : Stichwort: EnableDelayedExpansion
http://ss64.com/nt/delayedexpansion.html
FOR-Schleife
Also vor die Variable ein
und die Variable dann anstatt mit Prozentzeichen mit Ausrufezeichen abrufen.
und hinterher wieder ein setlocal DISABLEDELAYEDEXPANSION
Gruß
skybird
http://ss64.com/nt/delayedexpansion.html
FOR-Schleife
Also vor die Variable ein
setlocal ENABLEDELAYEDEXPANSION
echo !str!
Gruß
skybird