Top-Themen

Aktuelle Themen (A bis Z)

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

Zeichen in Schleifenvariablen löschen

Frage Entwicklung Batch & Shell

Mitglied: xasher

xasher (Level 1) - Jetzt verbinden

25.03.2010, aktualisiert 18:26 Uhr, 4527 Aufrufe, 7 Kommentare

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
Mitglied: bastla
25.03.2010 um 18:20 Uhr
Hallo xasher und willkommen im Forum!

Einmal mehr das Stichwort "delayedExpansion" ...

Versuch es daher so:
01.
@echo on & setlocal enabledelayedexpansion 
02.
FOR /F "skip=1 eol=; tokens=5,6,7 delims=, " %%i in (as_neu.csv) do @( 
03.
    set LATITUDE=%%i 
04.
    set var1=!LATITUDE:~0,-1! 
05.
 
06.
    echo !var1! 
07.
    echo %%i 
08.
    echo %%k 
09.
)
Anmerkung zu "!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
Bitte warten ..
Mitglied: Biber
25.03.2010 um 18:23 Uhr
Moin xasher,

willkommen im Forum.
Zwei Tipps.
  • Benutze Codetags.
  • Benutze "DelayedExpansion" bzw den Befehl "Setlocal EnableDelayedExpansion"

Beispiel für beides:
01.
@echo off & Setlocal EnableDelayedExpansion 
02.
REM zum Testen ggf @echo on 
03.
FOR /F "skip=1 eol=; tokens=5,6,7 delims=, " %%i in (as_neu.csv) do @( 
04.
 
05.
set LATITUDE=%%i 
06.
set var1=!LATITUDE:~0,9%! 
07.
 
08.
echo %var1% 
09.
echo %%i 
10.
echo %%k 
11.
)
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]
Bitte warten ..
Mitglied: xasher
25.03.2010 um 19:15 Uhr
Hallo ihr beiden,

vielen Dank für eure schnelle Antworten.
Ich hab hier glaub noch ein Windows7 spezifisches Problem mit dem Syntax: set var1=!LATITUDE:~0,-1!

Genauer gesagt mit dem -1. Das funktioniert bei mir unter Windows XP auf dem Laptop wirklich perfekt, in win7 wirds aber komplett ignoriert. Die Ausgabe sieht dann so aus:


48.123456N
48.123456N
300 (Höhe)

Das Script scheint hier völlig wirkungslos zu sein, daher habe ich auch 0,9 angegeben, was nicht gut ist, da die Länge hier bestimmt varieren kann.
Gibt es dafür eine Abhilfe?

Gruß und vielen Dank
xasher
Bitte warten ..
Mitglied: Biber
25.03.2010 um 19:33 Uhr
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
set LATITUDE=%%i 
...hast und gewöhne dir besser diese Schreibweise an.
set "LATITUDE=%%i"
Grüße
Biber
Bitte warten ..
Mitglied: bastla
25.03.2010 um 19:33 Uhr
Hallo xasher!
... in win7 wirds aber komplett ignoriert
kann ich nicht nachvollziehen.

Verwende zur Sicherheit folgende Schreibweise:
01.
set "LATITUDE=%%i" 
02.
set "var1=!LATITUDE:~0,-1!"
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]
Bitte warten ..
Mitglied: xasher
25.03.2010 um 19:41 Uhr
ähm ja!!!

Scheint wohl so gewesen zu sein

mir kams gerade schon spanisch vor als es mit -2 ging. Auf das Leerzeichen wäre ich aber wahrscheinlich nicht so schnell gekommen - hatte gerade schon den Fehler in der csv gesucht.

Danke euch für eure Bemühungen.
Gruß
xasher
Bitte warten ..
Mitglied: bastla
25.03.2010 um 20:00 Uhr
Hallo xasher!

War zwar keine Mühe - aber zur Ehrenrettung von "Redmond's Best" hätten wir die natürlich auch in Kauf genommen ...

Grüße
bastla
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
Fünftletztes Zeichen löschen wenn es ein Underline ist
gelöst Frage von giadscBatch & Shell10 Kommentare

Hallo zusammen, ich stehe wieder mal an diese FOR Schleiffe werde ich wohl nie in meinem Leben kapieren Folgendes ...

Python
Python von ZEICHEN bis ZEICHEN
gelöst Frage von schneerunzelPython2 Kommentare

Hallo, ich glaube ich habe eine ganz einfache Frage: Ich möchte aus eine Testdatei die So aufgebaut ist: ID;Vorname;Name;Jahrgang ...

Entwicklung
Delphi-Script: Abgriff von Zeichen bis Zeichen
gelöst Frage von archivarioEntwicklung3 Kommentare

Hallo zúsammen, vielleicht kann mir jemand helfen. Ich muss in einem Delphi Programm per Script ein bestimmtes Zeichen rausfiltern ...

Batch & Shell
Zeichen vor den letzten zwei Zeichen einfügen
gelöst Frage von JoachimKunzBatch & Shell3 Kommentare

Hallo Zusammen, ich habe ein kleines Problem und brauche eure Hilfe. Ich habe auf einen SELS 11 System eine ...

Neue Wissensbeiträge
Internet

USA: Die FCC schaff die Netzneutralität ab

Information von Frank vor 3 StundenInternet2 Kommentare

Jetzt beschädigt US-Präsident Donald Trump auch noch das Internet. Der neu eingesetzte FCC-Chef Ajit Pai ist bekannter Gegner einer ...

DSL, VDSL

ALL-BM200VDSL2V - Neues VDSL-Modem mit Vectoring von Allnet

Information von Lochkartenstanzer vor 6 StundenDSL, VDSL1 Kommentar

Moin, Falls jemand eine Alternative zu dem draytek sucht: Gruß lks

Windows 10

Microsoft bestätigt DMA-Policy-Problem in Win10 v1709

Information von DerWoWusste vor 6 StundenWindows 10

Wer sein Gerät mit der DMA-Policy absichert, bekommt evtl. Hardwareprobleme in v1709 von Win10. Warum? Weil v1709 endlich "richtig" ...

Verschlüsselung & Zertifikate

Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows

Information von ticuta1 vor 10 StundenVerschlüsselung & Zertifikate

Interessant Die Hölle friert ein weiteres Stück zu: Microsoft integriert OpenSSH in Windows SSH-Kommando in CMD.exe und PowerShell

Heiß diskutierte Inhalte
Netzwerkmanagement
Mehrere Netzwerkadapter in einem PC zu einem Switch zusammenfügen
Frage von prodriveNetzwerkmanagement21 Kommentare

Hallo zusammen Vorweg, ich konnte schon einige IT-Probleme mit Hilfe dieses Forums lösen. Wirklich klasse hier! Doch für das ...

Windows Server
RODC kann nicht aus Domäne entfernt werden
Frage von NilsvLehnWindows Server19 Kommentare

HAllo, ich arbeite in einem Universitätsnetzwerk mit 3 Standorten. Die Standorte haben alle ein ESXi Cluster und auf diesen ...

Hardware
Kein Bild mit nur einer bestimmten Grafikkarten - Mainboard Konfiguration
gelöst Frage von bestelittHardware18 Kommentare

Hallo zusammen, ich hatte schon einmal eine ähnliche Frage gestellt. Damals hatte ich genau das gleiche Problem. Allerdings lies ...

Hardware
Links klick bei Maus funktioniert nicht
gelöst Frage von Pablu23Hardware16 Kommentare

Hallo erstmal. Ich habe ein Problem mit meiner relativ alten maus jedoch denke ich nicht das es an der ...