Zeichen in Schleifenvariablen löschen
Hallo zusammen,
ich will aus einer csv-Datei mit Geodaten eine kml-Datei für Google-Earth basteln.
Dazu müssen die Koordinaten leicht umformatiert werden. Das heißt das letzte Zeichen entfernt werden wo "N" bzw "E" drinsteht
bsp:
48.123456N
09.123468E
Das letzte Zeichen muss jeweils weg, aber das funktioniert bei den Schleifenvariablen auch über Umwege nicht
wie hier im Script dargestellt
@echo on
FOR /F "skip=1 eol=; tokens=5,6,7 delims=, " %%i in (as_neu.csv) do @(
set LATITUDE=%%i
set var1=%LATITUDE:~0,9%
echo %var1%
echo %%i
echo %%k
)
Problem ist, das er immer dieselbe var1 ausgibt, bei allen Zeilen, und die Var %%i kann ich nicht so richtig bearbeiten, da funktioniert das mit dem abschneiden des letzten Zeichens nicht.
Habt ihr einen Tipp, wie man das Problem umgehen kann?
gruß und danke
xasher
ich will aus einer csv-Datei mit Geodaten eine kml-Datei für Google-Earth basteln.
Dazu müssen die Koordinaten leicht umformatiert werden. Das heißt das letzte Zeichen entfernt werden wo "N" bzw "E" drinsteht
bsp:
48.123456N
09.123468E
Das letzte Zeichen muss jeweils weg, aber das funktioniert bei den Schleifenvariablen auch über Umwege nicht
wie hier im Script dargestellt
@echo on
FOR /F "skip=1 eol=; tokens=5,6,7 delims=, " %%i in (as_neu.csv) do @(
set LATITUDE=%%i
set var1=%LATITUDE:~0,9%
echo %var1%
echo %%i
echo %%k
)
Problem ist, das er immer dieselbe var1 ausgibt, bei allen Zeilen, und die Var %%i kann ich nicht so richtig bearbeiten, da funktioniert das mit dem abschneiden des letzten Zeichens nicht.
Habt ihr einen Tipp, wie man das Problem umgehen kann?
gruß und danke
xasher
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 139182
Url: https://administrator.de/forum/zeichen-in-schleifenvariablen-loeschen-139182.html
Ausgedruckt am: 23.04.2025 um 12:04 Uhr
7 Kommentare
Neuester Kommentar
Hallo xasher und willkommen im Forum!
Einmal mehr das Stichwort "delayedExpansion" ...
Versuch es daher so:
Anmerkung zu "
Grüße
bastla
Einmal mehr das Stichwort "delayedExpansion" ...
Versuch es daher so:
@echo on & setlocal enabledelayedexpansion
FOR /F "skip=1 eol=; tokens=5,6,7 delims=, " %%i in (as_neu.csv) do @(
set LATITUDE=%%i
set var1=!LATITUDE:~0,-1!
echo !var1!
echo %%i
echo %%k
)
!LATITUDE:~0,-1!
": Da die Anforderung "Abschneiden des letzten Zeichens" lautete, wird der Teilstring entsprechend (bis zum Zeichen bei "Länge-1") ermittelt.Grüße
bastla
Moin xasher,
willkommen im Forum.
Zwei Tipps.
Beispiel für beides:
Die "verzögert aufgelöste" Variable %var% muss als solche als !var! statt %var% angesprochen werden.
Grüße
Biber
[edit] @bastla: Okay, okay.... weit abgeschlagen...[/edit]
willkommen im Forum.
Zwei Tipps.
- Benutze Codetags.
- Benutze "DelayedExpansion" bzw den Befehl "Setlocal EnableDelayedExpansion"
Beispiel für beides:
@echo off & Setlocal EnableDelayedExpansion
REM zum Testen ggf @echo on
FOR /F "skip=1 eol=; tokens=5,6,7 delims=, " %%i in (as_neu.csv) do @(
set LATITUDE=%%i
set var1=!LATITUDE:~0,9%!
echo %var1%
echo %%i
echo %%k
)
Die "verzögert aufgelöste" Variable %var% muss als solche als !var! statt %var% angesprochen werden.
Grüße
Biber
[edit] @bastla: Okay, okay.... weit abgeschlagen...[/edit]
Moin xasher,
so ungern ich die RedmonderInnen in Schutz nehme... ich kann nicht glauben, dass die soo geschlampt haben.
Bitte überprüfe noch mal, ob du in dem Skript auf dem Win7-Rechner nicht vielleicht ein trailing blank hinter dem %%i in der Zeile
...hast und gewöhne dir besser diese Schreibweise an.
Grüße
Biber
so ungern ich die RedmonderInnen in Schutz nehme... ich kann nicht glauben, dass die soo geschlampt haben.
Bitte überprüfe noch mal, ob du in dem Skript auf dem Win7-Rechner nicht vielleicht ein trailing blank hinter dem %%i in der Zeile
set LATITUDE=%%i
set "LATITUDE=%%i"
Grüße
Biber
Hallo xasher!
Verwende zur Sicherheit folgende Schreibweise:
Beim Kopieren eines Quelltexts aus dem Forum wird gerne am Zeilenende ein Leerzeichen angefügt - mit der angeführten Schreibweise wäre das dann egal ...
Grüße
bastla
[Edit] @Biber: Mit der Nummer könnten wir schön langsam auftreten ...
[/Edit]
... in win7 wirds aber komplett ignoriert
kann ich nicht nachvollziehen.Verwende zur Sicherheit folgende Schreibweise:
set "LATITUDE=%%i"
set "var1=!LATITUDE:~0,-1!"
Grüße
bastla
[Edit] @Biber: Mit der Nummer könnten wir schön langsam auftreten ...