Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

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

Geotagging via SMS und UMTS-Stick

Frage Entwicklung

Mitglied: Speider13

Speider13 (Level 1) - Jetzt verbinden

27.01.2013, aktualisiert 18:37 Uhr, 2028 Aufrufe, 19 Kommentare

Hallo,

ich hätte eine frage und komme im momment nicht so ganz klar damit.

Ich habe ein "Gerät" das sendet die aktuelle Position via SMS als "Google Maps URL" an meinen Windows PC an dem ein UMTS-Stick dran ist.
Jetzt hätte ich aber die Postionen gerne in Google Earth oder in einem ähnlichen Programm, hätte jemand eine Idee für eine Batch Datei?

Die Text Datei in der die SMS gespeichert wird sieht so aus:

01.
2013-01-27 13:06:15'43 SMS: +49100000000 2013-01-27 13:05:49 [04] 
02.
27.01.2013 13:05 
03.
https://maps.google.de/maps?q=+48%C2%B024'10.25%22N+++9%C2%B058'18.83%22E&hl=de&ie=UTF8&ll=48.401742,9.97683&spn=0.013063,0.033023&sll=48.661847,9.003665&sspn=6.654792,16.907959&t=h&z=16

Oder wen das nicht klappen sollte, dann hätte ich wenigstens gerne eine schöne Sicherungsdatei, in der die URLs stehen.



Vielleicht weiß es ja jemand.


Viele Grüße
Robin
Mitglied: MrNetman
27.01.2013 um 14:53 Uhr
Hi Speider,

ich sehe keinerlei Geoinformation in der Zeile.
Anosonsten macht man das in etwa so, dass man die empfangene Zeile an eine vorhandene Datei anhängt. Das geht mit nahezu allen BATCH Kommandos.
In der Batch ist das das Zeichen ">>"getagt.txt oder .CSV. Dann kann man das Zeilenweise wieder abarbeiten.

Gruß
Netman
Bitte warten ..
Mitglied: Speider13
27.01.2013, aktualisiert um 17:28 Uhr
Hallo Netman,

die URL sollte dann praktisch der google Maps Link sein.

Wie in etwa müsste die Batch datei dann aussehen?
also praktisch muss man ja Zeile "3" kopieren und irgendwie so umwandeln das es Google Earth oder ein anderes Programm lesen kann umändern, oder?

Gruß
Robin
Bitte warten ..
Mitglied: rubberman
27.01.2013, aktualisiert um 18:13 Uhr
Hallo Speider13, willkommen im Forum.

Zitat von Speider13:
Die Text Datei in der die SMS gespeichert wird sieht so aus:
2013-01-27 13:06:15'43 SMS: +49100000000 2013-01-27 13:05:49 [04]
URL

also praktisch muss man ja Zeile "3" kopieren

Wenn du uns nun noch erzählst, wo du eine Zeil 3 siehst (gepostet hast du 2) und wie diese aussieht, könnte man vielleicht auch was daraus machen. Aus deinen Informationen kann ich diesbezüglich nichts nützliches entnehmen (und offensichtlich bin ich da nicht der einzige).

Grüße
rubberman
Bitte warten ..
Mitglied: Speider13
27.01.2013, aktualisiert um 18:40 Uhr
Hallo danke,

sorry, zwischen dem Datum und der URL ist noch eine Leerzeile, dass hat das aber nicht angezeigt, tut aber ja auch nichts zur Sache denke ich :D

so ne google Maps URL sieht so aus:
01.
https://maps.google.de/maps?q=+48%C2%B024'10.25%22N+++9%C2%B058'18.83%22E&hl=de&ie=UTF8&ll=48.401742,9.97683&spn=0.013063,0.033023&sll=48.661847,9.003665&sspn=6.654792,16.907959&t=h&z=16
Also nochmal zusammengefasst:
1. Zeile Zeit und Datum vom SMS Programm
2. Zeile Zeit und Datum vom Absender
3. Zeile die Google Maps URL

01.
2013-01-27 13:06:15'43 SMS: +49100000000 2013-01-27 13:05:49 [04] 
02.
27.01.2013 13:05 
03.
https://maps.google.de/maps?q=+48%C2%B024'10.25%22N+++9%C2%B058'18.83%22E&hl=de&ie=UTF8&ll=48.401742,9.97683&spn=0.013063,0.033023&sll=48.661847,9.003665&sspn=6.654792,16.907959&t=h&z=16
Ich denke jetzt sieht es besser aus ;)

Viele Grüße
Robin
Bitte warten ..
Mitglied: rubberman
27.01.2013 um 19:07 Uhr
Hallo Speider13,

ja jetzt wird das was.
Bei mir heißt die Textdatei test.txt, musst du entsprechend anpassen.
01.
@echo off &setlocal 
02.
for /f "usebackq skip=2 delims=" %%i in ("test.txt") do if not defined url set "url=%%i" 
03.
start "" "%url%"
Alternativ drag/drop Textdatei auf das Script:
01.
@echo off &setlocal 
02.
for /f "usebackq skip=2 delims=" %%i in ("%~1") do if not defined url set "url=%%i" 
03.
start "" "%url%"
Grüße
rubberman
Bitte warten ..
Mitglied: Speider13
27.01.2013, aktualisiert um 19:39 Uhr
Wow super!

das funktioniert echt super!
leider ohne Google Earth funktion, aber ist aber auch so ganz gut


Und nochmals vielen Dank!
Bitte warten ..
Mitglied: rubberman
28.01.2013, aktualisiert um 00:29 Uhr
Hallo Speider13.

Das Spielchen mit Google Earth zu betreiben, ist noch mal eine andere Liga. Hier kommst du mit Batch nicht weit, JScript würde sich da eher anbieten.
Um die Sache nicht unnötig zu verkomplizieren, gehe ich davon aus, dass die Koordinaten immer in Grad, Minuten und Sekunden Nord bzw. Ost angegeben sind und dass die Dateiendung *.kml mit Google Earth assoziiert ist.

Speichere folgenden Code als *.js Datei ab und ziehe deine Textdatei auf des Script.
01.
if (WScript.arguments.count() != 1) {WScript.quit();} 
02.
 
03.
var oFSO = new ActiveXObject('Scripting.FileSystemObject'); 
04.
var oWShell = new ActiveXObject('WScript.Shell') 
05.
oWShell.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName); 
06.
 
07.
var oFile = oFSO.OpenTextFile(WScript.arguments(0)); 
08.
var url; 
09.
var s = ''; 
10.
while (!oFile.AtEndOfStream) { 
11.
  url = oFile.ReadLine(); 
12.
  if (url.substr(0, 4) == 'http') { 
13.
    var query = url.split('?'); 
14.
    var vars = query[1].split('&'); 
15.
    for (var i = 0; i < vars.length; ++i) { 
16.
      var pair = vars[i].split('='); 
17.
      if (decodeURIComponent(pair[0]) == 'q') { 
18.
        s = decodeURIComponent(pair[1]); 
19.
20.
21.
22.
23.
oFile.close(); 
24.
oFile = null; 
25.
 
26.
if (s == '') {WScript.quit();} 
27.
 
28.
var oRepl = new RegExp('[+°\'"NE]', 'g'); 
29.
s = s.replace(oRepl, ' '); 
30.
for (var i = 0; i < 20; ++i) {s = s.replace('  ', ' ');} 
31.
if (s.charAt(0) == ' ') {s = s.substr(1);} 
32.
 
33.
var a = s.split(' '); 
34.
var north = parseFloat(a[0]) + parseFloat(a[1]) / 60 + parseFloat(a[2]) / 3600; 
35.
var east = parseFloat(a[3]) + parseFloat(a[4]) / 60 + parseFloat(a[5]) / 3600; 
36.
 
37.
oFile = oFSO.OpenTextFile('location.kml', 2, true); 
38.
oFile.WriteLine('<?xml version="1.0" encoding="Windows-1252"?>'); 
39.
oFile.WriteLine('<kml xmlns="http://www.opengis.net/kml/2.2">'); 
40.
oFile.WriteLine('  <Placemark>'); 
41.
oFile.WriteLine('    <name>Position</name>'); 
42.
oFile.WriteLine('    <description>Koordinaten via SMS.</description>'); 
43.
oFile.WriteLine('    <Point>'); 
44.
oFile.WriteLine('      <coordinates>' + east + ',' + north + ',0</coordinates>'); 
45.
oFile.WriteLine('    </Point>'); 
46.
oFile.WriteLine('  </Placemark>'); 
47.
oFile.WriteLine('</kml>'); 
48.
oFile.close(); 
49.
 
50.
oWShell.run('location.kml');
Grüße
rubberman
Bitte warten ..
Mitglied: Speider13
28.01.2013 um 02:07 Uhr
Wow, das ist ein Monster! Danke ;)

Nur habe ich noch drei Probleme:
1. Wen ich mit dem Befehl eine .txt erstelle, steht der Text dort drin nur mit "Text" also mit Anführungszeichen. echo "%url%" >> %Earth%\%Nr%\%Datum::=.%.txt
was ist falsch?

2. Wie ist es möglich die .js Datei von einer Batch Datei zu starten?
Also so funktioniert es nicht:
start "%Quelle%\%Nr%\%Datum%.txt" "D:\SMS\Earth.js"

3. Kann man die .js auch so umschreiben das es mehrere Koordinaten aus einer Textdatei in der mehrere Links drin sind rausliest? Weil im Momment nimmt es immer nur eine URL.

Viele Grüße
Robin
Bitte warten ..
Mitglied: rubberman
28.01.2013 um 19:36 Uhr
Hallo Speider 13

1. Wen ich mit dem Befehl eine .txt erstelle, steht der Text dort drin nur mit "Text" also mit Anführungszeichen.
echo "%url%" >> %Earth%\%Nr%\%Datum::=.%.txt
was ist falsch?
Falsch ist erst mal dass du es aus dem Zusammenhang gerissen hast. So kann ich dir das auch nicht beantworten. Im ganzen Batch bitte


2. Wie ist es möglich die .js Datei von einer Batch Datei zu starten?
Also so funktioniert es nicht:
start "%Quelle%\%Nr%\%Datum%.txt" "D:\SMS\Earth.js"
So ähnlich.
start "" wscript "D:\SMS\Earth.js" "%Quelle%\%Nr%\%Datum%.txt"

3. Kann man die .js auch so umschreiben das es mehrere Koordinaten aus einer Textdatei in der mehrere Links drin sind rausliest?
Weil im Momment nimmt es immer nur eine URL.
Kann man.
01.
if (WScript.arguments.count() != 1) {WScript.quit();} 
02.
 
03.
var oFSO = new ActiveXObject('Scripting.FileSystemObject'); 
04.
var oWShell = new ActiveXObject('WScript.Shell') 
05.
var oRepl = new RegExp('[+°\'"NE]', 'g'); 
06.
oWShell.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName); 
07.
 
08.
var oFile2 = oFSO.OpenTextFile('location.kml', 2, true); 
09.
oFile2.WriteLine('<?xml version="1.0" encoding="Windows-1252"?>'); 
10.
oFile2.WriteLine('<kml xmlns="http://www.opengis.net/kml/2.2">'); 
11.
oFile2.WriteLine('  <Document>'); 
12.
 
13.
var oFile1 = oFSO.OpenTextFile(WScript.arguments(0)); 
14.
var url, s, n = 0; 
15.
while (!oFile1.AtEndOfStream) { 
16.
  url = oFile1.ReadLine(); 
17.
  if (url.substr(0, 4) == 'http') { 
18.
    var query = url.split('?'); 
19.
    var vars = query[1].split('&'); 
20.
    for (var i = 0; i < vars.length; ++i) { 
21.
      var pair = vars[i].split('='); 
22.
      if (decodeURIComponent(pair[0]) == 'q') { 
23.
        n += 1; 
24.
        s = decodeURIComponent(pair[1]); 
25.
        s = s.replace(oRepl, ' '); 
26.
        for (var i = 0; i < 20; ++i) {s = s.replace('  ', ' ');} 
27.
        if (s.charAt(0) == ' ') {s = s.substr(1);} 
28.
        var a = s.split(' '); 
29.
        var north = parseFloat(a[0]) + parseFloat(a[1]) / 60 + parseFloat(a[2]) / 3600; 
30.
        var east = parseFloat(a[3]) + parseFloat(a[4]) / 60 + parseFloat(a[5]) / 3600; 
31.
        oFile2.WriteLine('    <Placemark>'); 
32.
        oFile2.WriteLine('      <name>Position ' + n + '</name>'); 
33.
        oFile2.WriteLine('      <description>Koordinaten via SMS.</description>'); 
34.
        oFile2.WriteLine('      <Point>'); 
35.
        oFile2.WriteLine('        <coordinates>' + east + ',' + north + ',0</coordinates>'); 
36.
        oFile2.WriteLine('      </Point>'); 
37.
        oFile2.WriteLine('    </Placemark>'); 
38.
39.
40.
41.
42.
oFile1.close(); 
43.
 
44.
oFile2.WriteLine('  </Document>'); 
45.
oFile2.WriteLine('</kml>'); 
46.
oFile2.close(); 
47.
 
48.
if (n == 0) {WScript.quit();} 
49.
 
50.
oWShell.run('location.kml', 3);

Grüße
rubberman
Bitte warten ..
Mitglied: Speider13
28.01.2013 um 21:47 Uhr
Super danke!
Die beiden Sachen funktionieren super!

Und um ersten Problem:

01.
@echo off &setlocal 
02.
set "Quelle=D:\Benutzer\smstest.txt" 
03.
set "Earth=D:\Benutzer\Earth" 
04.
 
05.
for /f "usebackq skip=2 delims=" %%i in ("test.txt") do if not defined url set "url=%%i" 
06.
start "" "%url%" 
07.
for /f "usebackq skip=1 tokens=2 delims=h" %%i in (%Quelle%) do if not defined url set "url=%%i" 
08.
start "" "h%url%" 
09.
 
10.
if not exist "%Earth%\%Nr%" md "%Earth%\%Nr%" 
11.
echo "h%url%" >> %Earth%\%Nr%\%Datum::=.%.txt
Bei der leitzen Zeile wird die txt erstellt, nur sieht die dann so aus
01.
"https://maps.google.de/maps?q=+48%C2%B024'10.25%22N+++9%C2%B058'18.83%22E&" 
Also es sind immer " dabei, die sollten aber weg.

Viele Grüße
Robin
Bitte warten ..
Mitglied: rubberman
28.01.2013 um 22:09 Uhr
Hallo Speider13.

Um nicht alle möglichen Zeichen maskieren zu müssen, würde ich auf die verzögerte Variablenerweiterung zurück greifen.
Für deine Zeile 11 die folgenden drei:
01.
setlocal EnableDelayedExpansion 
02.
>>"!Earth!\!Nr!\!Datum::=.!.txt" echo h!url! 
03.
endlocal


Grüße
rubberman
Bitte warten ..
Mitglied: Speider13
28.01.2013 um 22:53 Uhr
Super funktioniert!

Also jetzt habe ich es dann :D
wird auch Zeit, ich glaube ich nerve ziemlich xD


Falls doch noch jemand Lust hat, würde das gehen das die Punkte noch mit Linien nacheinander verbunden werden in Google Earth, also praktisch eine Route.

Viele Grüße
Bitte warten ..
Mitglied: rubberman
28.01.2013, aktualisiert 29.01.2013
Hallo Speider13.

Bin mit Google Earth nicht vertraut (konkret habe ich es nur installiert, um das .js zu testen). Hast du so etwas schon mal in GE gesehen? Falls ja, wird das auch irgendwie funktionieren. Kannst ja mithelfen eine Vorlage für eine .kml Datei zu finden, die so etwas beispielhaft beschreibt. Die Umsetzung im Script sollte dann vermutlich nicht mehr das Problem sein.

Grüße
rubberman

PS: Wenn du mit "Route" meinst, dass einem Straßenverlauf gefolgt werden soll, dann nein. Dazu wäre eine Datenbank nötig, die sämtliche Straßenverläufe beinhaltet. So wie bspw. Navigationssysteme solche Datenbanken haben oder auf solche zurück greifen.
Bitte warten ..
Mitglied: Speider13
29.01.2013, aktualisiert um 16:54 Uhr
Hallo,

ne ich meinte nur das die Punkte zusammen verbunden werden, ist aber nicht so wichtig.
Das passt so schon. Auf jedefall funktioniert fast alles so wie es soll, echt super von euch!

Nur habe ich jetzt ein Problem, ist mir ziemlich peinlich, aber die URLs sehen doch etwas anderst aus, sodas das Script die nicht mehr verarbeiten kann. :O

01.
http://maps.google.com/maps?f=q&q=68.498772,20.020090&z=16
Also sind die Koordinaten in dem Fall: 68.498772,20.020090

in der .kml Datei steht nur "NaN,NaN,0"

Sorry nochmal

Viele Grüße
Robin
Bitte warten ..
Mitglied: rubberman
29.01.2013 um 18:36 Uhr
Hallo Speider13.

Wenn die URL so aussieht, vereinfacht das die Verarbeitung sogar. Letztlich werden Längen- und Breitengrad als Dezimalzahl benötigt.
Wie man die Punkte verbindet, habe ich mittlerweile auch heraus gefunden.
01.
if (WScript.arguments.count() != 1) {WScript.quit();} 
02.
 
03.
var oFSO = new ActiveXObject('Scripting.FileSystemObject'); 
04.
var oWShell = new ActiveXObject('WScript.Shell') 
05.
oWShell.CurrentDirectory = oFSO.GetParentFolderName(WScript.ScriptFullName); 
06.
 
07.
var oFile2 = oFSO.OpenTextFile('location.kml', 2, true); 
08.
oFile2.WriteLine('<?xml version="1.0" encoding="Windows-1252"?>'); 
09.
oFile2.WriteLine('<kml xmlns="http://www.opengis.net/kml/2.2">'); 
10.
oFile2.WriteLine('  <Document>'); 
11.
oFile2.WriteLine('    <Style id="lineStyle">'); 
12.
oFile2.WriteLine('      <LineStyle>'); 
13.
oFile2.WriteLine('        <color>80ff0000</color>'); 
14.
oFile2.WriteLine('        <width>6</width>'); 
15.
oFile2.WriteLine('      </LineStyle>'); 
16.
oFile2.WriteLine('    </Style>'); 
17.
 
18.
var oFile1 = oFSO.OpenTextFile(WScript.arguments(0)); 
19.
var url, s, pt, line = '', n = 0; 
20.
while (!oFile1.AtEndOfStream) { 
21.
  url = oFile1.ReadLine(); 
22.
  if (url.substr(0, 4) == 'http') { 
23.
    var query = url.split('?'); 
24.
    var vars = query[1].split('&'); 
25.
    for (var i = 0; i < vars.length; ++i) { 
26.
      var pair = vars[i].split('='); 
27.
      if (decodeURIComponent(pair[0]) == 'q') { 
28.
        n += 1; 
29.
        s = decodeURIComponent(pair[1]); 
30.
        pt = s.split(','); 
31.
        oFile2.WriteLine('    <Placemark>'); 
32.
        oFile2.WriteLine('      <name>Position ' + n + '</name>'); 
33.
        oFile2.WriteLine('      <description>Koordinaten via SMS.</description>'); 
34.
        oFile2.WriteLine('      <Point>'); 
35.
        oFile2.WriteLine('        <coordinates>' + pt[1] + ',' + pt[0] + ',0</coordinates>'); 
36.
        oFile2.WriteLine('      </Point>'); 
37.
        oFile2.WriteLine('    </Placemark>'); 
38.
        line += pt[1] + ',' + pt[0] + ',0 '; 
39.
40.
41.
42.
43.
oFile1.close(); 
44.
 
45.
oFile2.WriteLine('    <Placemark>'); 
46.
oFile2.WriteLine('      <name>Verbindungslinie</name>'); 
47.
oFile2.WriteLine('      <description>Linie zwischen den Einzelpositionen</description>'); 
48.
oFile2.WriteLine('      <styleUrl>#lineStyle</styleUrl>'); 
49.
oFile2.WriteLine('      <GeometryCollection>'); 
50.
oFile2.WriteLine('        <LineString>'); 
51.
oFile2.WriteLine('          <coordinates>' + line + '</coordinates>'); 
52.
oFile2.WriteLine('        </LineString>'); 
53.
oFile2.WriteLine('      </GeometryCollection>'); 
54.
oFile2.WriteLine('    </Placemark>'); 
55.
oFile2.WriteLine('  </Document>'); 
56.
oFile2.WriteLine('</kml>'); 
57.
oFile2.close(); 
58.
 
59.
if (n == 0) {WScript.quit();} 
60.
 
61.
oWShell.run('location.kml', 3);
Grüße
rubberman
Bitte warten ..
Mitglied: Speider13
29.01.2013, aktualisiert um 20:57 Uhr
WOW du bist unglaublich!
Das funktioniert super!!

Nur kam jetzt mal wieder ein Problem...

die bat wird sobald ich sie ausführ 3 mal! ausgeführt?!

Es muss ja was mit dem URL Teil zutun haben ab Zeile 25

01.
@echo off & setlocal 
02.
:set "Quelle=C:\Dokumente und Einstellungen\Benutzer\Startmenü\Programme\MWconn\sms1.txt" 
03.
set "Quelle=D:\SMS\sms1.txt" 
04.
set "Ziel=D:\SMS\Sicherung" 
05.
set "Main=D:\SMS" 
06.
 
07.
set Kopf=True 
08.
for /f "usebackq delims=" %%i in ("%Quelle%") do set "Zeile=%%i" & call :ProcessLine 
09.
goto :eof 
10.
 
11.
:ProcessLine 
12.
set "Zeile=%Zeile:>=^>%" 
13.
set "Zeile=%Zeile:<=^<%" 
14.
if not defined Kopf (echo %Zeile%)>>"%Datei%" & set Kopf=True & goto :eof 
15.
 
16.
for /f "usebackq tokens=2 delims=+" %%l in ('echo %Zeile:'=%') do for /f "tokens=1-3" %%a in ('echo %%l') do set "Nr=%%a" & set "Datum=%%b" & set "Zeit=%%c" 
17.
if not exist "%Ziel%\%Nr%" md "%Ziel%\%Nr%" 
18.
set "Datei=%Ziel%\%Nr%\%Datum::=.%.csv" 
19.
set Kopf= 
20.
 
21.
 
22.
FOR /F "tokens=1,2,3 delims=/: " %%a in ('Time/T') do set CTIME=%%a%%b%%c 
23.
 
24.
 
25.
for /f "usebackq skip=2 tokens=2 delims=h" %%i in (%Quelle%) do if not defined url set "url=%%i" 
26.
start "" "h%url%" 
27.
if not exist "%Earth%\%Nr%" md "%Earth%\%Nr%" 
28.
setlocal EnableDelayedExpansion 
29.
>>"!Earth!\!Nr!\!Datum::=.!.txt" echo h!url! 
30.
endlocal
Und das ist die Nachricht

01.
2013-01-28 20:06:15'43 SMS: +49 2013-01-28 20:05:49 [04] 
02.
 
03.
2013-01-28 20:06:15 
04.
speed:1.57 
05.
T:13/01/29 16:32 
06.
bat:100% 395711031304228 
07.
 http://maps.google.com/maps?f=q&q=48.498772,10.020090&z=16
aber warum wird die bat 3mal ausgeführt?! seltsam!
Wen ich z.B. nur ne 2 Zeilige Nachricht habe funktioniert sie einwandfrei!

Es ist zum verrückt werden!!!!
Bitte warten ..
Mitglied: rubberman
29.01.2013 um 21:30 Uhr
Hallo Speider13.

Wie kommst du darauf, dass die Batchdatei 3x ausgeführt wird ?
Du rufst für jede Zeile in sms1.txt die Subroutine :ProcessLine auf. Je mehr Zeilen, um so öfter wird sie aufgerufen. Da ich aber nicht weiß, welches Verhalten du von deinem Batchscript erwartest (welche Logik steckt dahinter und was soll dabei heraus kommen), weiß ich nicht wo ich dir helfen kann.
Ein paar Sachen die mir unabhängig davon aufgefallen sind:
  • Wo nutzt du Variable Main?
  • Woher kommt der Wert der Variablen Earth?
  • Warum maskierst du < und > in den Zeilen 12 und 13? Kommen die irgendwo vor?

Grüße
rubberman
Bitte warten ..
Mitglied: rubberman
30.01.2013 um 21:31 Uhr
Schau mal, ob du mit diesem Ansatz bei allen Möglichkeiten die richtigen Ausgaben bekommst.
01.
@echo off &setlocal 
02.
set "quelle=D:\SMS\sms1.txt" 
03.
 
04.
set /p "firstLine="<"%quelle%" 
05.
echo %firstLine% 
06.
 
07.
for /f "tokens=2 delims=+" %%i in ("%firstLine%") do ( 
08.
  for /f "tokens=1-3" %%j in ("%%i") do ( 
09.
    set "nr=%%j" 
10.
    set "datum=%%k" 
11.
    for /f "tokens=1-3 delims=:" %%m in ("%%l") do ( 
12.
      set "hh=%%m" 
13.
      set "mm=%%n" 
14.
      set "ss=%%o" 
15.
16.
17.
18.
echo %nr% 
19.
echo %datum% 
20.
echo %hh% 
21.
echo %mm% 
22.
echo %ss% 
23.
 
24.
for /f "tokens=*" %%i in ('findstr "\<http" "%quelle%"') do set "url=%%i" 
25.
setlocal EnableDelayedExpansion 
26.
echo !url! 
27.
endlocal 
28.
 
29.
pause
Grüße
rubberman
Bitte warten ..
Mitglied: Speider13
03.02.2013 um 12:33 Uhr
Hey,

sorry hat etwas länger gedauert mit dem Antworten, aber so funktioniert es!

Vielen Dank nochmal!
Bitte warten ..
Neuester Wissensbeitrag
Windows 10

Powershell 5 BSOD

(2)

Tipp von agowa338 zum Thema Windows 10 ...

Ähnliche Inhalte
IDE & Editoren
USB STICK Datei AUTOMATISCH beim anschliessen auf fremden PC öffnen (9)

Frage von Jwanner83 zum Thema IDE & Editoren ...

UMTS, EDGE & GPRS
LTE oder UMTS Router mit LAN Anschluss (6)

Frage von Stefan3110 zum Thema UMTS, EDGE & GPRS ...

Internet
gelöst Wlan erzeugen mit Internet von einem USB Modem Stick (8)

Frage von berli6 zum Thema Internet ...

Heiß diskutierte Inhalte
LAN, WAN, Wireless
gelöst Server erkennt Client nicht wenn er ausserhalb des DHCP Pools liegt (28)

Frage von Mar-west zum Thema LAN, WAN, Wireless ...

Windows Server
Server 2008R2 startet nicht mehr (Bad Patch 0xa) (18)

Frage von Haures zum Thema Windows Server ...

Outlook & Mail
Outlook 2010 findet ost datei nicht (18)

Frage von Floh21 zum Thema Outlook & Mail ...