Variable aus Schleife
Hallo, erstmal hat mir das Forum bis jetzt sehr geholfen, unglaublich viele und gute Informationen.
Allerdings habe ich ein kleines Problem wo ich einfach nicht weiter komme.
Ich möchte in die scan.txt die vom user bestimmten URLs vor oder über den entsprechenden IPs ausgeben.
Probleme:
1. Die Variable url befindet sich in einer Schleife, die kann ich nicht nutzen. (wird ja nur der letzte wert gespeichert)
2. habe die urls in eine extra Datei geschrieben um sie von dort einzufügen, allerdings weiß ich nicht wie ich die einzelnen Zeilen auslesen und zuordnen kann.
3. Die for /F in der for /L Schleife führt zu einer steigenden Wiederholung der Ausgabe in der scan.txt. Geht also auch nicht.
4. Versuche ich in der schleife for /F den entsprechenden token aus einer anderen Zeile der temp.txt auszulesen wird der natürlich aus beiden Zeilen gelesen. (3,9 sind in der selben Zeile)
Jetzt weiß ich wie es nicht geht
Wäre toll wenn mir da jemand einen Tip oder eine Lösung geben kann.
Gerne auch zu einer besseren Formatierung oder anderer Lösungsweg.
Vielen Dank.
Allerdings habe ich ein kleines Problem wo ich einfach nicht weiter komme.
for /L %%i in (1,1,%anzahl%) do set /p url=URL %%i:& echo !url! >> temp1.txt & ping -n 1 !url! >> temp.txt
for /F "tokens=3,9 delims==<: " %%f in ('findstr "TTL" temp.txt') do if %%g LSS 80 (echo %%f Unix/Linux >> scan.txt & echo. >> scan.txt) else (echo %%f Windows >> scan.txt & echo. >> scan.txt)
Ich möchte in die scan.txt die vom user bestimmten URLs vor oder über den entsprechenden IPs ausgeben.
Probleme:
1. Die Variable url befindet sich in einer Schleife, die kann ich nicht nutzen. (wird ja nur der letzte wert gespeichert)
2. habe die urls in eine extra Datei geschrieben um sie von dort einzufügen, allerdings weiß ich nicht wie ich die einzelnen Zeilen auslesen und zuordnen kann.
3. Die for /F in der for /L Schleife führt zu einer steigenden Wiederholung der Ausgabe in der scan.txt. Geht also auch nicht.
4. Versuche ich in der schleife for /F den entsprechenden token aus einer anderen Zeile der temp.txt auszulesen wird der natürlich aus beiden Zeilen gelesen. (3,9 sind in der selben Zeile)
Jetzt weiß ich wie es nicht geht
Wäre toll wenn mir da jemand einen Tip oder eine Lösung geben kann.
Gerne auch zu einer besseren Formatierung oder anderer Lösungsweg.
Vielen Dank.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 174589
Url: https://administrator.de/forum/variable-aus-schleife-174589.html
Ausgedruckt am: 27.01.2025 um 04:01 Uhr
5 Kommentare
Neuester Kommentar
Aloha,
in etwa so (?)
greetz André
P.S. Frühstück!
in etwa so (?)
@echo off & setlocal enabledelayedexpansion
set /a "anzahl=2"
for /L %%i in (1,1,%anzahl%) do (
set /p url=URL %%i:
for /F "tokens=3,9 delims==^<: " %%f in ('ping -n 1 !url!^|findstr "TTL"') do (
if %%g LSS 80 (
>>scan.txt (echo !url!
echo %%f Unix/Linux)
) else (
>>scan.txt (echo !url!
echo %%f Windows
echo.)
)
)
)
pause
greetz André
P.S. Frühstück!
Aloha,
sorry aber ich habe, ehrlich gesagt, heute keine Lust mich in dein Chaos hineinzudenken, zumal du wieder mit temp.txt arbeitest und teilweise falscher
Also mach' es uns beiden doch leichter: Wie ich vermute, ist das letzter für das interne Netzwerk(?), welche Werte / Informationen willst du aus dem ping ausgegeben wissen? Denn Zeile 02 z.B. gibt 32 aus, ob du das so willst ... (?)
greetz André
egal, ich werf' dir jetzt einfach mal etwas hin ...
sorry aber ich habe, ehrlich gesagt, heute keine Lust mich in dein Chaos hineinzudenken, zumal du wieder mit temp.txt arbeitest und teilweise falscher
for
-Zusammenstellung, dass ich schon nicht mehr blicke welche Werte du eigentlich ausgeben haben willst.Also mach' es uns beiden doch leichter: Wie ich vermute, ist das letzter für das interne Netzwerk(?), welche Werte / Informationen willst du aus dem ping ausgegeben wissen? Denn Zeile 02 z.B. gibt 32 aus, ob du das so willst ... (?)
greetz André
egal, ich werf' dir jetzt einfach mal etwas hin ...
@echo off & setlocal
set /a "start=10"
set /a "ende=15"
set "IP=192.168.100"
for /L %%i in (%start%,1,%ende%) do (
for /f "tokens=3,5,7,9 delims==:^< " %%a in ('ping -a -n 1 %IP%.%%i^|findstr "TTL"') do (
if %%d LSS 35 >>scan.txt (echo %%a Bytes=%%b Zeit=%%c Windows95/WindowsNT && echo.)
)
)
)
pause