Mal wieder Dateiinhalte verändern und allg. Fragen zu Powershell
Hallo alle,
mitlerweile werde ich hier noch zum Dauergast
Nachdem ich durch eure Hilfe schon einiges an Batchbefehlen gelernt habe, gehts nun weiter.
Und wiedermal fehlt mir der richtige Einstieg in ein Thema. Soll heißen: Ich weiß ganit, wo ich anfangen soll mit der suche.
Folgendes Problem:
Auf einem FTP Server wird jede halbe Stunde eine Datei erzeugt. Sie heißt min_day.js und hat folgenden Inhalt.
m[mi++]="03.08.11 16:45:00|500;459;67;29857;607;255"
m[mi++]="03.08.11 16:40:00|1217;1104;157;29815;629;264"
m[mi++]="03.08.11 16:35:00|1915;1730;245;29711;639;270"
.
.
.
Jede halbe Stunde wird die Datei nach oben erweitert, mit 5 Minutenwerte.
Leider kann ich mit einer *.js Datei nichts Anfangen. Ich habe mir also eine Batchdatei geschrieben (an der Stelle nochmals danke an alle die geholfen haben).
Diese Batchdatei holt sich die Datei vom FTP Server und speichert sie auf ein lokales Verzeichnis.
Nach dem speichern wird der Dateiname abgeändert von min_day.js in xxx.txt
Das funktioniert soweit tadellos.
Allerdings stehen jetzt noch Sachen in der Datei, was ich nicht gebrauchen kann.
Der Dateiinhalt sollte so aussehen:
03.08.11;16:45:00;500;459;67;29857;607;255
03.08.11;16:40:00;1217;1104;157;29815;629;264
03.08.11;16:35:00;1915;1730;245;29711;639;270
.
.
.
Hier meine ersten Fragen:
Wie genau geht das?
Kann ich das "Dateiinhalt abändern" noch in die vorhandene Batchdatei mit einfügen?
Hier wird viel von Powershell geredet. Und das man das mit Powershell machen kann. Wo finde ich ein deutsches Tutorial für Powershell?
Weil so wie ich das hier gelesen habe, kann man ja damit echt feine Sachen machen. Damit möchte ich mich gerne näher befassen.
Also, ich bin für jeden Tip dankbar.
Am aller besten (wenn auch etwas dreist) wäre es, wenn mir jemand ein Programm dafür schreiben könnte. Und dazu noch Erklärungn, was die einzelnen Zeilen bedeuten.
So habe ich etwas in der Hand, womit ich anfangen kann das zu lernen. Abgesehen davon, brauche ich das relativ Zeitnah.
Vielen lieben Dank.
Gruß Helix
mitlerweile werde ich hier noch zum Dauergast
Nachdem ich durch eure Hilfe schon einiges an Batchbefehlen gelernt habe, gehts nun weiter.
Und wiedermal fehlt mir der richtige Einstieg in ein Thema. Soll heißen: Ich weiß ganit, wo ich anfangen soll mit der suche.
Folgendes Problem:
Auf einem FTP Server wird jede halbe Stunde eine Datei erzeugt. Sie heißt min_day.js und hat folgenden Inhalt.
m[mi++]="03.08.11 16:45:00|500;459;67;29857;607;255"
m[mi++]="03.08.11 16:40:00|1217;1104;157;29815;629;264"
m[mi++]="03.08.11 16:35:00|1915;1730;245;29711;639;270"
.
.
.
Jede halbe Stunde wird die Datei nach oben erweitert, mit 5 Minutenwerte.
Leider kann ich mit einer *.js Datei nichts Anfangen. Ich habe mir also eine Batchdatei geschrieben (an der Stelle nochmals danke an alle die geholfen haben).
Diese Batchdatei holt sich die Datei vom FTP Server und speichert sie auf ein lokales Verzeichnis.
Nach dem speichern wird der Dateiname abgeändert von min_day.js in xxx.txt
Das funktioniert soweit tadellos.
Allerdings stehen jetzt noch Sachen in der Datei, was ich nicht gebrauchen kann.
Der Dateiinhalt sollte so aussehen:
03.08.11;16:45:00;500;459;67;29857;607;255
03.08.11;16:40:00;1217;1104;157;29815;629;264
03.08.11;16:35:00;1915;1730;245;29711;639;270
.
.
.
Hier meine ersten Fragen:
Wie genau geht das?
Kann ich das "Dateiinhalt abändern" noch in die vorhandene Batchdatei mit einfügen?
Hier wird viel von Powershell geredet. Und das man das mit Powershell machen kann. Wo finde ich ein deutsches Tutorial für Powershell?
Weil so wie ich das hier gelesen habe, kann man ja damit echt feine Sachen machen. Damit möchte ich mich gerne näher befassen.
Also, ich bin für jeden Tip dankbar.
Am aller besten (wenn auch etwas dreist) wäre es, wenn mir jemand ein Programm dafür schreiben könnte. Und dazu noch Erklärungn, was die einzelnen Zeilen bedeuten.
So habe ich etwas in der Hand, womit ich anfangen kann das zu lernen. Abgesehen davon, brauche ich das relativ Zeitnah.
Vielen lieben Dank.
Gruß Helix
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 170896
Url: https://administrator.de/contentid/170896
Ausgedruckt am: 15.11.2024 um 23:11 Uhr
17 Kommentare
Neuester Kommentar
Hallo Doppelhelix!
Versuch es mal mit
anstatt
(ich hätte ja auch die Zeilennummer dafür angegeben - wenn Du die passende verwendet hättest) ...
... wobei die Tatsache, dass der zu entfernende Teil vor dem ersten vorkommenden "=" steht danach schreit, die "
Grüße
bastla
Versuch es mal mit
SET "zeile=%%~i"
SET zeile=%%i
Kann ich diese Datei noch erweitern, so daß noch mehr in einem Rutsch geändert wird?
Was einmal geht, geht auch zweimal ...... wobei die Tatsache, dass der zu entfernende Teil vor dem ersten vorkommenden "=" steht danach schreit, die "
for
"-Schleife etwas anzupassen - gleich am Stück etwa so:@echo off & SETLOCAL
SET "datei=c:\CSV\min_day.txt"
SET "ausgabe=c:\CSV\fertig\GBLH.txt"
SET "suchzeichen=|"
SET "ersetzungszeichen=;"
REM Loeschen der Ausgabedatei, falls sie (noch) existiert
IF EXIST "%ausgabe%" DEL /f "%ausgabe%" 2>nul
REM Datei zeilenweise auslesen
REM und in Variable "zeile" schreiben
FOR /f "tokens=1* delims==" %%i IN ('FINDSTR . "%datei%"') DO (
set "zeile=%%~j"
call :ersetzen
)
goto :eof
:ersetzen
call set "zeile=%%zeile:%suchzeichen%=%ersetzungszeichen%%%"
>>"%ausgabe%" echo %zeile: =;%
goto :eof
bastla
Hallo Doppelhelix!
... anyhow, wenn Du eine Lösung hast, soll's mir auch recht sein (obwohl ich den Link zu dieser Seite: Batch - Suchen u. Ersetzen in .txt Datei - Gänsefüßchen durch nix bevorzugen würde).
Grüße
bastla
leider gehts immer noch nicht, wenn ich nur das TAB Zeichen weghaben möchte.
Abgesehen davon, dass "|" und TAB zwei völlig unterschiedliche Dinge sind: Wenn ich Deine Letztfassung mit meinem Entwurf (oder auch nur mit meinem Tipp) von oben vergleiche, fühle ich mich nicht ganz ernst genommen ...... anyhow, wenn Du eine Lösung hast, soll's mir auch recht sein (obwohl ich den Link zu dieser Seite: Batch - Suchen u. Ersetzen in .txt Datei - Gänsefüßchen durch nix bevorzugen würde).
Grüße
bastla
Hallo Doppelhelix!
Eigentlich wollte ich den Ablauf beschleunigen, indem ich nicht nur einen Tipp hinsichtlich der "
Grüße
bastla
P.S.: Der "senkrechte Strich" wird auch gerne "Pipe" genannt, weil er als Verbindung zwischen Befehlen (zur Weitergabe der Ergebnisse) verwendet wird ...
Eigentlich wollte ich den Ablauf beschleunigen, indem ich nicht nur einen Tipp hinsichtlich der "
for
"-Schleife gegeben, sondern einen fertigen Batch hinterlassen habe ... Grüße
bastla
P.S.: Der "senkrechte Strich" wird auch gerne "Pipe" genannt, weil er als Verbindung zwischen Befehlen (zur Weitergabe der Ergebnisse) verwendet wird ...
Hallo Doppelhelix!
Noch eine Anmerkung zu dne Zeilen 7 - 16: Die könntest Du auch so
schreiben - liest sich dann leichter ...
Grüße
bastla
Ich nehme an, du hast nen Befehl drin, der die Verarbeitung stoppt.
Zeile 46 (ein "goto
" ist erforderlich, damit das Unterprogramm nach der Schleife nicht nochmals durchlaufen wird - Du kannst aber durch Einfügen weiterer Zeilien unmittelbar vor Zeile 46 das "Hauptprogramm" noch erweitern ...Und was passiert mit den fertigen Dateien? Würden die auch bei der nächsten abfrage überschrieben werden?
Es gibt einige Kommentare in dem Batch - in Zeile 37 steht auch einer ... Noch eine Anmerkung zu dne Zeilen 7 - 16: Die könntest Du auch so
:: FTP-Script erstellen
>%FTP% echo open %SRV%
>>%FTP% echo %USR%
>>%FTP% echo %PAS%
>>%FTP% echo bin
>>%FTP% echo lcd d:\Import_Solar\GBLH
:: nun den richtigen Befehl eintragen mget,put oder get (fuer eine einzelne Datei)...
>>%FTP% echo get min_day.js
>>%FTP% echo close
>>%FTP% echo quit
Grüße
bastla