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

Daten Download mit batch und wGET!?!?!?!

Frage Entwicklung Batch & Shell

Mitglied: 17346

17346 (Level 1)

01.02.2006, aktualisiert 03.02.2006, 8419 Aufrufe, 12 Kommentare

Hallo,

hab mich ne zeitlang damit beschäftigt aber irgendwie komm ich net weiter...brauch sozusagen dringen nen guten tipp..


Hier das Problem...

es geht um den datenabgleich zwischen Webshop und unsrem ERP-System...

das Exportieren der daten von ERP zu Webshop funktioniert ohne Problem ich Erstell die Daten vom ERP System und lade sie mittels rsync auf den webshop und aktivire dann per wget das skript auf dem webshop um die daten dann einzulesen...

nur der umgekehrte weg funktioniert nicht wirklich...

ich muss das skript auf dem webshop aktivieren...mit wget (was funktioniert)..

nur die daten von dem webshop zu holen bekomm ich nicht hin... problem ist, dass eine menge von daten darin stehen und ich eigentlich nur die brauche die mit imp anfangen...

hat jemand ne idee wie ich das am besten hinbekomme... die imp daten sind auch alle mit nem zeitstempel versehen so dass ich diese dann auch noch richtig sortieren muss... um dann beim einlesen ins erp-system nicht irgendwo anfange sondern bei der ältesten datei...

NEED HELP!?!?!?!
Mitglied: maneich
01.02.2006 um 14:16 Uhr
Hallo,

so wie ich das sehe, wirst Du das mit einer Batch allein nicht hinbekommen.

Arbeitest Du mit WGET unter Windows oder Linux?

Für das runterholen benötigst Du auf jeden Fall eine feste URL, wo die Daten abgeholt werden können.

Wenn du mit Denem Script alle Daten einsammeln kannst. könntest du ja auch über dieses Script z.B. ein VBS starten, das nur die relevanten Daten (imp..) aussortiert und diese danach auch noch sortiert.

Danach diese Daten speichert und Rückmeldung zum abholen gibt.

Das ist natürlich nur ein grober Umriss, sollte aber realisierbar sein.

http://www.pro-linux.de/berichte/wget-doku.html
Hier sind am Ende der Seite auch einige Erweiterungen von wget angezeigt, vielleich helfen einige oder eines davon weiter.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: 17346
01.02.2006 um 14:21 Uhr
hm...

leider windows..

also die feste url hab ich ja wo ich einmal das skript anwerfe..was die daten aus dem webshop exportiert..und den ort habe auch wo die daten abgelagert werden..

mein problem ist wahrscheinlich nur wie ich nach und anch die timestamps aus dem dateinamen entferne und nur die imp daten finde..

ich schau mir mal kurz den dokulink an...
Bitte warten ..
Mitglied: maneich
01.02.2006 um 14:50 Uhr
Hallo,

nun das ist doch schon mal etwas.

Also ich würde Dir vorschlagen das ganze runterzuladen und danach verarbeiten. Am einfachsten geht das dann mit VBS:

s2 = "URL" ' hier die genaue URL eintragen
Set objHTTP = CreateObject("MSXML2.XMLHTTP")
Call objHTTP.Open("GET", s2, FALSE)
objHTTP.Send
dat = Split(objHTTP.ResponseText, vbCrLf)


Damit hast Du in dat den Inhalt der Seite in Zeilen aufbereitet stehen und mit:

For Each da in dat
x = InStr(da, "imp")
If 0 < x Then
dat1 = dat1 & vbCrLf & da
End If
Next

Damit sortiest Du alle Datensätze aus die "imp" beinhalten.
Kommt "imp" nur am Zeilenanfang vor, kannst du das noch genauer machen mit:

x = InStr(left(da, 3), "imp")

Für das sortieren der Datensätze ist wichtig zu wissen ob Erstellungsdatum oder Datum letzte Änderung genommen werden soll.

Du solltest schon mal einige DatenSätze hier reinstellen, damit man sich einen Überblick verschaffen kann. Sortieren nach bestimmten Kriterien ist nicht so einfach.

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: 17346
02.02.2006 um 11:34 Uhr
sorry,

ich glaube ich hab mich da vielleicht etwas falsch ausgedrückt...

die datensätze ansicht sind kein problem es geht um die dateinamen....

sprich wird es eine liste von dateien geben die ungefähr so ausschaut..

imp_best_pos_20060105121314.csv --> davon mehr als eine...

&

import_best_kunden_20060105121314.csv


mein problem ist..das ich erst den timestamp eliminieren muss, dabei aber aufpassen muss dass ich die datei nach dem umbennen verschiebe..dann einlese und dann mir die nächste datei vornehme...

leider reichen heirzu meine programmier kenntnisse im bezug auf VB oder batch-dateien nicht aus um mir was vernünftiges zu basteln...
Bitte warten ..
Mitglied: maneich
02.02.2006 um 19:15 Uhr
Hallo,

damit sollte es klappen.

Über Laufwerk/Netzlaufwerk alter & neuer Standort kann ich Dir ohne Aussagen so nicht helfen.

Die Liste (Listname muß in der Klammer angegeben werden) am besten im Verzeichnis der Ursprungsdateien ablegen und auch das Script in diesem Verzeichnis laufen lassen.

@echo off
cls
for /f "tokens=1,2,3,4 delims=_" %%i in (liste.txt) do call:loop %%i %%j %%k %%l

:loop
set y=%1
If not %y:~1,3%==imp goto end
set y=%4
set nam=%1_%2_%3_%y:~7%
move /y %1_%2_%3_%4 neuerStandort\%nam%>nul
:end

goto eof

Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: Biber
02.02.2006 um 19:33 Uhr
Na, maneich,
ich glaube eher, dass die Anforderung so zu interpretieren ist, dass die Dateien (imp_best_pos%timestamp%.csv und imp_best_kunden_%timestamp%.csv)
- erst alle mit wget zu holen sind
- diese dann einzeln (älteste zuerst) umbenannt werden müssen in imp_best_pos.csv und imp_best_kunden.csv
- einzeln per "LiesmirEin.exe imp_best_kunden.csv" bzw. "LiesmirEin.exe imp_best_post.csv" eingelesen werden sollen.
- danach vielleicht irgendwohin geMOVED werden.

Wir sollten erst noch mal die Spezifikation abwarten.
Gruß biber

P.S. Bei Deinem Batch fehlt ein "goto :eof" nach der FOR..IN.DO_Anweisung.
Bitte warten ..
Mitglied: maneich
02.02.2006 um 20:37 Uhr
Hallo Biber,

wenn Du hier meinen ersten Thread gelesen hast, solltest Du eigentlich mitbekommen haben, daß ich auch der Meinung war/bin erst mal alles runterzuholen.

Eine Antwort kann nur so gut sein wie die Anfrage und mit Glauben kann man nicht programmieren.

Na ja, dann wird eben delims noch um den Punkt erweitert "delims=_. " und "token=1,2,3,4,5" und es wird noch %%m an loop übergeben und %4 wird in loop wird ignoriert.

Das mit dem "LiesmirEin.exe" verstehe ich nicht. Windows und ganz besonders ab W2K ist so mächtig, daß man fast keine Fremdtools benötigt. Man muß sich eben damit befassen.

Das goto eof sollte so auch klappen, wenn mindestens 1 Leerzeile dazwischen liegt. Aber sicher hast Du recht, daß es unter der for-Zeile besser aufgehoben ist


Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: 17346
03.02.2006 um 08:12 Uhr
Morgen,

danke erstmal das hier so sehr über mein Problem philosophiert wird..

so nun noch ein paar infos mehr..

also mittlerweile hab ich es hinbekommen nur die ausgewählten daten zu downloaden..

sprich ich lade derzeit nur die daten runter die mit "imp" anfangen..

die spezifikation von biber bringt es auf den punkt...

trifft da der programmcode von meineich noch zu???
Bitte warten ..
Mitglied: maneich
03.02.2006 um 11:31 Uhr
Hallo,

dann mußt Du den Code eben, wie in meinem lezten Thread erwähnt, etwas erweitern

Wenn Du bei delims=_. noch den Punkt dazu setzst, lierfert Dir die for-Zeile z.B.

imp best pos 20060105121314 csv

also 5 Positionen, wo ist dann auch tokens=1,2,3,4,5.

Alle Positionen benötigst Du für die ursprüngliche Datei und für den neuen Namen Pos. 1,2,3,5

Also:

@echo off
cls
for /f "tokens=1,2,3,4,5 delims=_." %%i in (liste.txt) do call:loop %%i %%j %%k %%l %%m
goto eof

:loop
set y=%1
If not %y:~1,3%==imp goto end
move /y %1_%2_%3_%4.%5 neuerStandort\%1_%2_%3.%5>nul
oder für rename
ren %1_%2_%3_%4.%5 %1_%2_%3.%5>nul
:end

Wenn Du in der Liste bereits nur die Dateien mit "imp" stehen hast, genügt nur die for-Zeile

for /f "tokens=1,2,3,4,5 delims=_." %%i in (liste.txt) do move /y Verzeichnis\%%i_%%j_%%k_%%l.%%m Verzeichnis\%%i_%%j_%%k.%%m>nul

für move oder bei rename

for /f "tokens=1,2,3,4,5 delims=_." %%i in (liste.txt) do ren Verzeichnis\%%i_%%j_%%k_%%l.%%m %%i_%%j_%%k.%%m>nul


Mit freundlichen Grüßen maneich
Bitte warten ..
Mitglied: 17346
03.02.2006 um 14:11 Uhr
danke erstmal, das sieht schon ganz gut aus, hab nur eine frage..was meint ihr mit listen???

meint ihr damit das verzeichniss wo die ganzen imp* datein drin stehen oder was???

Mit freundlichen Grüßen

martin..
Bitte warten ..
Mitglied: Biber
03.02.2006 um 19:15 Uhr
Moin Martin,

das wird langsam ein bisschen schwierig, weil Kollege maneich und ich Deine Anforderung vollkommen unterschiedlich verstehen und dementsprechend vollkommen unterschiedliche Lösungswege vor Augen haben.

Deshalb noch mal von mir die Frage:
Ich habe es so verstanden, dass die imp_best_kunden*bla- und imp_best_best_pos_bla-Dateien einzeln eingelesen werden müssen von irgendeinem Tool "LiesMirEin.exe", das das zwar kann, aber immer den feststehenden Namen "imp_best_kunden.* OHNE die Timestamp-Extension braucht.

Wenn dem so ist, komme ich mit ein paar Zeilen weniger aus als maneich - bin aber nicht sicher, wie genau denn Deine Anforderung ist.

Mit Weg wäre :
::--BatchskizzeBiber.bat
@echo off
Wget.....(alle imp_best*.csv ins Verzeichnis D:\ownload)
for /f %%i in ('dir /od /b D:\ownload\imp_best_pos*.csv') do call:loop IMP_BEST_POS.csv %%~dpni
for /f %%i in ('dir /od /b D:\ownload\imp_best_kunden*.csv') do call:loop IMP_BEST_KUNDEN.csv %%~dpni
goto :eof

:loop
Copy /y %2 c:\wodasEinlesenIst\%1
c:\wodasEinlesenIst\LiesMirEin %1
Move %2 S:\SaveDisk\MyImpBackups\*.*
goto :eof
::--BatchskizzeBiber.bat

Die Pfade und den Namen von der "LiesmirEin.exe" solltest Du natürlich ersetzen.
So habe ich die Mimik verstanden.

Gruß Biber
Bitte warten ..
Mitglied: maneich
03.02.2006 um 20:01 Uhr
Hallo,

ich erinnere an Deinen Thread vom 2.2.06:

ich glaube ich hab mich da vielleicht etwas falsch ausgedrückt...
die datensätze ansicht sind kein problem es geht um die dateinamen....
sprich wird es eine liste von dateien geben die ungefähr so ausschaut..
------
imp_best_pos_20060105121314.csv --> davon mehr als eine...
&
import_best_kunden_20060105121314.csv

Also ging ich davon aus, daß alle Dateien in einer Liste stehen, die Du dann abarbeiten willst. Ist dem nicht so mußt du natürlich mit "dir" arbeiten, wie von Biber angezeigt.

Das Problem ist eben, daß bei Deinen Ausführungen div. Interpretationen möglich sind.

Na ja mal sehen.

Mit freundlichen Grüßen maneich
Bitte warten ..
Neuester Wissensbeitrag
Internet

Unbemerkt - Telekom Netzumschaltung! - BNG - Broadband Network Gateway

(3)

Erfahrungsbericht von ashnod zum Thema Internet ...

Ähnliche Inhalte
Batch & Shell
gelöst BATCH: Daten aus Textdatei auslesen und in neue Textdatei separieren (9)

Frage von Manuel1234 zum Thema Batch & Shell ...

Batch & Shell
Dateinamen nach Zeichnen abschneiden - Batch-Shell (9)

Frage von cberndt zum Thema Batch & Shell ...

Batch & Shell
CMD Verschlüsslung ( Batch ) (11)

Frage von clragon zum Thema Batch & Shell ...

Batch & Shell
gelöst älteste dateien via batch löschen (6)

Frage von cali169 zum Thema Batch & Shell ...

Heiß diskutierte Inhalte
Switche und Hubs
Trunk für 2xCisco Switch. Wo liegt der Fehler? (17)

Frage von JayyyH zum Thema Switche und Hubs ...

Windows Server
Outlook Verbindungsversuch mit Exchange (15)

Frage von xbast1x zum Thema Windows Server ...

DSL, VDSL
DSL-Signal bewerten (14)

Frage von SarekHL zum Thema DSL, VDSL ...