Auslesen eines Strings aus einer Datei, diesen als Variable setzen und dann mit einer anderen Variable kombinieren - Wo liegt der Fehler?
Hi Zusammen, ich versuche gerade eine Batch zu erstellen die mir das Leben etwas erleichtern soll.
Und nun sitze ich schon viel zu lange davor, habe eigentlich keine Ahnung von Batchgeschichten...
Es handelt sich dabei um folgendes:
REM Erstelle eine Datei namens pinglog.txt
echo PingAlot > pinglog.txt
REM definiere Umgebungsvariable b
SET b=.bla.domäne.bla
REM Schleife, hole dir aus der Datei Hostnames.txt einen Namen (%%a), und pinge die Komibnation aus dem geholten namen und der Umgebungsvariable, dann filtere und schreibs in die pinglog.txt
FOR /F "tokens=1*" %%a IN (Hostnames.txt) DO ping -n 1 %a%%b% | findstr [ >> pinglog.txt
Soweit mein Gedankengang.
Leider lässt cmd die variable %%a immer aus. und verwendet nur die %%b,
Aber nur inerhalb der Schleife, warum?
Vielen Dank!
lg
DarkBrummer
Und nun sitze ich schon viel zu lange davor, habe eigentlich keine Ahnung von Batchgeschichten...
Es handelt sich dabei um folgendes:
REM Erstelle eine Datei namens pinglog.txt
echo PingAlot > pinglog.txt
REM definiere Umgebungsvariable b
SET b=.bla.domäne.bla
REM Schleife, hole dir aus der Datei Hostnames.txt einen Namen (%%a), und pinge die Komibnation aus dem geholten namen und der Umgebungsvariable, dann filtere und schreibs in die pinglog.txt
FOR /F "tokens=1*" %%a IN (Hostnames.txt) DO ping -n 1 %a%%b% | findstr [ >> pinglog.txt
Soweit mein Gedankengang.
Leider lässt cmd die variable %%a immer aus. und verwendet nur die %%b,
Aber nur inerhalb der Schleife, warum?
Vielen Dank!
lg
DarkBrummer
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 160545
Url: https://administrator.de/forum/auslesen-eines-strings-aus-einer-datei-diesen-als-variable-setzen-und-dann-mit-einer-anderen-variable-160545.html
Ausgedruckt am: 07.04.2025 um 12:04 Uhr
6 Kommentare
Neuester Kommentar
Moin DarkBrummer,
willkommen im Forum.
Hmmja, bastla hatte noch einen kleinen Zusatz dabei
NICHT schreiben solltest : %a%%b%
SONDERN : %%a%b%
Sieht zwar alles aus wie Merkels Frisur, aber bei genauem Hinschauen gibt es Unterschiede...
Grüße
Biber
willkommen im Forum.
Zitat von @DarkBrummer:
Hi Bastla, erstmal danke für die schnelle Antwort
Habe es auf deinen Rat hin geändert:
...
FOR /F "tokens=1*" %%a IN (Hostnames.txt) DO ping -n 1 %a%%b% | findstr [ >> pinglog.txt
Hi Bastla, erstmal danke für die schnelle Antwort
Habe es auf deinen Rat hin geändert:
...
FOR /F "tokens=1*" %%a IN (Hostnames.txt) DO ping -n 1 %a%%b% | findstr [ >> pinglog.txt
Hmmja, bastla hatte noch einen kleinen Zusatz dabei
...so, wie sie wirklich heißt ...
Gemeint war damit vermutlich, dass du zum Ansprechen des Gesamtstrings aus Laufvariable %%a und gesetzter Variable %b%NICHT schreiben solltest : %a%%b%
SONDERN : %%a%b%
Sieht zwar alles aus wie Merkels Frisur, aber bei genauem Hinschauen gibt es Unterschiede...
Grüße
Biber

moin und auch von mir ein herzhaftes Willkommen.
"nur" in Schleifen bist du auf "nichtssagende" Variablen wie a oder A (und das sind zwei unterschiedliche) angewiesen.
Am liebsten nicht nur "hübsch" geschrieben, sondern auch in Gänsefüsschen. (Zeile 5)
Auch wenn die Unterschiede auf den ersten Blick so groß sein mögen, wie Meister Proper mit Lutscher im Hals und Theo Kojak - es macht einen großen Unterschied
Ping %%a.%domain% - oder Ping %%a.%%b sieht einfach schöner aus, als Ping %%a%%b.
(Und wenn du das gemacht hättest, dann gäbe es auch kein "zufällig" funktionierendes %%b)
Gruß
- und ein paar kleine
rTipps am Rande...
"nur" in Schleifen bist du auf "nichtssagende" Variablen wie a oder A (und das sind zwei unterschiedliche) angewiesen.
- Sinnvoller und deutlich lesbarer wäeren nein - nicht die <code></code> Blöcke - in die Batche gut passen sondern aussagekräftige Variablen.
Am liebsten nicht nur "hübsch" geschrieben, sondern auch in Gänsefüsschen. (Zeile 5)
REM Erstelle eine Datei namens pinglog.txt
echo PingAlot > pinglog.txt
REM definiere Umgebungsvariable b
SET "domain=bla.domäne.bla"
REM Schleife, hole dir aus der Datei Hostnames.txt einen Namen (%%a), und pinge die Komibnation aus dem geholten namen und der Umgebungsvariable, dann filtere und schreibs in die pinglog.txt
FOR /F "tokens=1*" %%a IN (Hostnames.txt) DO ping -n 1 %%a.%domain% | findstr [ >> pinglog.txt
Auch wenn die Unterschiede auf den ersten Blick so groß sein mögen, wie Meister Proper mit Lutscher im Hals und Theo Kojak - es macht einen großen Unterschied
Ping %%a.%domain% - oder Ping %%a.%%b sieht einfach schöner aus, als Ping %%a%%b.
(Und wenn du das gemacht hättest, dann gäbe es auch kein "zufällig" funktionierendes %%b)
Gruß
Zitat von @60730:
Auch wenn die Unterschiede auf den ersten Blick so groß sein mögen, wie Meister Proper mit Lutscher im Hals und Theo
Kojak - es macht einen großen Unterschied
Auch wenn die Unterschiede auf den ersten Blick so groß sein mögen, wie Meister Proper mit Lutscher im Hals und Theo
Kojak - es macht einen großen Unterschied
Aloha T-Mo,
[OT]
irgendwann notier ich mir diese Art von Vergleichen von dir und verlege sie als Buch - made my day ;)
[/OT]
greetz André