Fehler in Batch-Datei
Hallo alle zusammen,
ich habe ein Problem mit einer Codezeile in einer Batch-Datei.
In der folgenden Zeile, soll die Anzahl der Zeilen in einer Textdatei gezählt werden.
In %aip% steht der Dateiname. Ich bekomme in der Eingabeaufforderung ausgegeben, dass die Datei nicht existiert. Die Datei ist vorhanden. An einer anderen Stelle im Skript kann auch mit ihr gearbeitet werden.
Könnte ihr mir weiterhelfen, was in meiner Codezeile falsch ist?
Vielen Dank für eure Unterstützung
MfG Ralf
ich habe ein Problem mit einer Codezeile in einer Batch-Datei.
In der folgenden Zeile, soll die Anzahl der Zeilen in einer Textdatei gezählt werden.
FOR /F "delims=" %%A IN (%aip%) DO SET /A "Counter+=1"
In %aip% steht der Dateiname. Ich bekomme in der Eingabeaufforderung ausgegeben, dass die Datei nicht existiert. Die Datei ist vorhanden. An einer anderen Stelle im Skript kann auch mit ihr gearbeitet werden.
Könnte ihr mir weiterhelfen, was in meiner Codezeile falsch ist?
Vielen Dank für eure Unterstützung
MfG Ralf
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 6923624572
Url: https://administrator.de/contentid/6923624572
Ausgedruckt am: 26.11.2024 um 03:11 Uhr
6 Kommentare
Neuester Kommentar
Moin Ralf,
Meine Glaskugel verrät mir, dass da Leerzeichen drin sind... falls die nicht schon wieder kaputt ist.
Gruß Thomas
In %aip% steht der Dateiname. Ich bekomme in der Eingabeaufforderung ausgegeben, dass die Datei nicht existiert.
und wie sieht %aip% aus?!Meine Glaskugel verrät mir, dass da Leerzeichen drin sind... falls die nicht schon wieder kaputt ist.
FOR /F "UseBackQ delims=" %%A IN ("%aip%") DO SET /A "Counter+=1"
Gruß Thomas
Zitat von @Ralf82:
Moin,
der Dateiname für heute lautet wie folgt:
Es sind keine Leerzeilen drin.
Liegt die Batch im selben Verzeichnis? Andernfalls musst du natürlich den vollen Pfad angeben. In etwa so:Moin,
der Dateiname für heute lautet wie folgt:
agent.aip-server.wincc-agent.20230426.log
Es sind keine Leerzeilen drin.
Aip="%~dp0agent.aip-server.wincc-agent.20230426.log"
Wenn du ein anderes Arbeitsverzeichnis gesetzt hast als das der Datei, hilft...
Pushd "c:\ mein Pfad mit\Leerzeichen"
Mich irritiert es, dass an anderer Stelle mit damit gearbeitet werden kann. Die Stelle sieht so aus:
Nur mal laut gedacht. Vielleicht liegts an den Gänsefüßchen? Die sind nie verkehrt... 😉for /f "delims=" %%f in ('more +%var% "%aip%" ^| findstr /ilc:"%text%"') do (
echo.%%f
Set /A "fund = fund + 1")
Die Batchdatei liegt in dem Verzeichnis, in dem auch die log-Datei ist.
Immer den vollen Pfad mitgeben und du bis immer auf der hellen Seite der Macht 😉Ach ja! Und dann hätte ich da noch eine Frage:
Warum in Batch? Warum kein Powershell? Batch ist ok um schnell Systemparameter anzupassen, PS ist gut um komplexe Vorgänge und Manipulationen zu automatisieren, also für solche Dinge zu tun wie du sie hier machen willst ...unter anderem.