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 Variablen verwenden nach auslesen aus Datei

Mitglied: xasher

xasher (Level 1) - Jetzt verbinden

31.03.2010 um 12:24 Uhr, 3647 Aufrufe, 4 Kommentare

Hallo zusammen,

ich seh gerade den Wald vor lauter Bäumen nicht mehr. Ich bin gerade dabei meine GPS Daten aufzubereiten.
Diese werden in mehreren CSV-Dateien gespeichert. Mit einem externen Tool (GPSBabel) will ich den Datenbestand
auf 10% reduzieren, da diese Werte durchaus genügen um ein der Karte ein Route darzustellen.

Wider besseren Wissens gehe ich wie folgt vor:
1. Dateien aus dem Verzeichnis auslesen
2. Steuerzeichen entfernen
3. Die Anzahl der Zeilen in eine dummy.txt schreiben
4. In der zweiten For Schleife die Anzahl in eine Variable schreiben bzw. 10% davon
5. GPSBabel aufrufen und denWert aus Variable ANZ übergeben

Hier mal den Code:

01.
@echo off & setlocal enabledelayedexpansion 
02.
FOR /F "tokens=*" %%a IN ('DIR *.CSV /B') DO (
03.
    
04.
  : mit sed die NUL-Zeichen entfernen, damit man die Anzahl der Zeilen rausbekommt
05.
  sed s/\x0//g > "neu_%%a" "%%a"
06.
  
07.
  : Anzahl der Zeilen in Datei schreiben
08.
  find /v /c "&*fake&*" neu_%%a > dummy.txt  
09.

10.

11.

12.
  FOR /F "skip=1 tokens=3 delims=: " %%i IN (dummy.txt) DO @(
13.
    set /a "ANZ=%%i/100*10"
14.
    : ANz anzeigen
15.
    echo %ANZ%
16.
  )
17.
    
18.
    echo gpsbabel -w -t -i v900 -f %%a -x track,course,speed,pack -x duplicate,location -x position,distance=5M -x simplify,count=%ANZ% -o unicsv -F neu_%%a
19.
    pause  
20.
   
21.
)


Jetzt passiert folgendes: Beim ersten Aufruf der Batch Datei zeigt er im echo %ANZ% garnichts an und bei den weiteren Aufrufen immer nur denselben Wert obwohl ich schon während des Ablaufs in die dummy.txt geschaut habe und dort unterschiedliche Werte drin standen.

Ich weiß gerade nicht mehr weiter. Zugegeben. Die Krücke mit dem Datei schreiben und auslesen in eine Variable ist da bestimmt nicht von Vorteil. Bin daher auch für eine andere Vorgehensweise offen.

Danke euch mal schon vorab.

Gruß
xasher
Mitglied: Biber
31.03.2010 um 13:09 Uhr
Moin xasher,

der kleine Fehler liegt im "verzögerten Variablenauflösen", das du ja richtig vorbereitet hast mit der Klausel "SetLocal EnableDelayedExpansion".
Das ist die notwendige Bedingung.
Welche der Variablen du nun tatsächlich "verzögert" auflösen willst, das musst durch die Verwendung der Schreibweise !Variablennamen! statt %Variablennamen% kundtun.
Erst dann hast du notwendige und hinreichende< Bedingungen.
Kürzer geschrieben - du müsstest oben in zeile 15 und Zeile 18 jeweils !ANZ! statt %ANZ% schreiben.

Die Ermittlung der Anzahl Zeilen der "neu_%%a"-dateien würde ich allerdings ohne temporäre Datei dummy.txt durchziehen.

Beispiel:
01.
..
02.
FOR /F "tokens=*" %%a IN ('DIR *.CSV /B') DO ( 
03.
...
04.
....
05.
              FOR /F "delims=:" %%i in ('FindStr /n "^" .neu_%%a') do (
06.
                   set /a "ANZ=%%i/100*10" 
07.
                    echo Zeilen in neu_%%a:  !ANZ!
08.
            )
09.
.....
10.
...
11.
)
12.
...
Grüße
Biber
Bitte warten ..
Mitglied: xasher
31.03.2010 um 13:19 Uhr
Hallo Biber,

danke für die schnelle Antwort. Jetzt hab ichs so gemacht, auch die For Schleife nach deinem Beispiel angepasst.

Am Bild laufen jetzt die Zeilen runter. Allerdings löst er die !ANZ! nicht auf

Zeilen in neu_10032901.CSV: !ANZ!
Zeilen in neu_10032901.CSV: !ANZ!
Zeilen in neu_10032901.CSV: !ANZ!
Zeilen in neu_10032901.CSV: !ANZ!

Hast du eine Idee was das ist?
Bitte warten ..
Mitglied: bastla
31.03.2010 um 14:04 Uhr
Hallo xasher!

Auf Basis Deines Ansatzes (aber ungetestet):
01.
@echo off & setlocal enabledelayedexpansion 
02.
FOR /F "tokens=*" %%a IN ('DIR *.CSV /B') DO (
03.

04.
    : mit sed die NUL-Zeichen entfernen, damit man die Anzahl der Zeilen rausbekommt
05.
    sed s/\x0//g > "neu_%%a" "%%a"
06.

07.
    : Anzahl der Zeilen in Datei schreiben
08.
    for /f %%i in find /v /c "&*fake&*"<"neu_%%a" do set /a ANZ=%%i/100*10
09.

10.
    echo gpsbabel -w -t -i v900 -f %%a -x track,course,speed,pack -x duplicate,location -x position,distance=5M -x simplify,count=!ANZ! -o unicsv -F neu_%%a
11.
    pause  
12.

13.
)
Grüße
bastla
Bitte warten ..
Mitglied: xasher
31.03.2010 um 14:06 Uhr
super danke euch! Bin wirklich froh, dass es tut. Hatte da einen Schreibfehler drin. Ich sitz schon seit Stunden über diesem Script, da fallen einem die Fehler nicht mehr auf Anhieb auf.

Danke euch für eure Mühe.

Gruß
xasher
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
BATCH ini Datei Datei auslesen
gelöst Frage von Juergen42Batch & Shell2 Kommentare

Hallo zusammen, ich möchte eine ini Datei auslesen mit folgenden Aufbau INHALT DER INI ID=30 NAME="test1" PFAD="K:\Kontoauszug\Test1\*.pdf" PFAD_S="K:\Kontoauszug\Test1\Sicherung\" ID=28 ...

Viren und Trojaner
MPSigStub Datei
gelöst Frage von marilene1Viren und Trojaner2 Kommentare

Hallo, ich habe seit einigen Tage eine Datei MPSigStub. Ich kann es leider nicht löschen, da ich keine Berechtigung ...

Batch & Shell
SMIME Datei
gelöst Frage von mero59Batch & Shell4 Kommentare

Hallo liebes Forum, ich hab da mal folgendes Problem: ich überwache mit Powershell und EWS ein Funktionspostfach, d. h. ...

Batch & Shell
Datei suchen
gelöst Frage von IleiesBatch & Shell10 Kommentare

Hallo zusammen, Kann man mit Batch eine Datei im Computer suchen und wenn sie existiert in ihr Verzeichnis wechseln?

Neue Wissensbeiträge
Internet
EU-Urheberrechtsreform: Zusammenfassung
Information von Frank vor 1 TagInternet

Auf golem.de gibt es eine Analyse von Friedhelm Greis, der das Thema EU-Urheberrechtsreform gut und strukturiert zusammenfasst. Zwar haben ...

Microsoft Office

Office365 Schwachstellen bei Sicherheit und Datenschutz

Information von Penny.Cilin vor 2 TagenMicrosoft Office7 Kommentare

Auf Heise+ gibt es einen Artikel bzgl. Office365 Schwachstellen. Das ist noch ein Grund mehr seine Daten nicht in ...

Sicherheit
Schwachstellen in VPN Clients
Tipp von transocean vor 4 TagenSicherheit2 Kommentare

Moin, es gibt Sicherheitslücken bei VPN Clients namhafter Hersteller, wie man hier lesen kann. Gruß Uwe

Sicherheit

Wikileaks-Gründer Julian Assange wurde festgenommen

Information von Frank vor 6 TagenSicherheit3 Kommentare

Wikileaks-Gründer Julian Assange wurde heute in London festgenommen. Die Botschaft Ecuadors, in der er seit sieben Jahren lebte, hat ...

Heiß diskutierte Inhalte
HTML
Google maps
Frage von jensgebkenHTML20 Kommentare

Hallo Gemeinschaft, hab mal ne Frage zu Maps - habe es hinbekommen, dass ich einen iframe link erstellen kann ...

Drucker und Scanner
Xerox 7328 muss jeden Tag neu installert werden
Frage von PN-SchrauberDrucker und Scanner20 Kommentare

hallo, ich habe in Problem mit einem unserer Drucker. Vorweg, die meisten unserer Netzwerkdrucker laufen über einen Druckserver, dieser ...

Tipps & Tricks
Verdammt voll erwischt
Frage von AlchimedesTipps & Tricks19 Kommentare

Folgende Mail habe ich auf meinem Freenet Account erhalten: Nun folgendes Problem: 1) Ich besuche Porno Seiten yep hat ...

Switche und Hubs
PC Verursach Probleme im Netzwerk
gelöst Frage von spoboeSwitche und Hubs16 Kommentare

Hallo zusammen, folgene Situation macht mich inzwischen ratlos: In unserem Betrieb ist ein Rechner über die Hausverkabelung an einem ...