Jump to content

Batch zum fortlaufenden Zusammenfügen zweier Dateien


Recommended Posts

Hallo zusammen,

ich bräuchte mal Eure Hilfe:
Ich habe seit kurzem eine Wetterstation die per WLAN ihre Daten an Wunderground Weather sendet. Die Wetterstation steht im Ferienhaus und dort läuft rund um die Rechner, der dann die Wetterdaten über ein Programm ins Internet stellt.
Nun besteht die Möglichkeit die Daten von Wunderground Weather über eine JSON-String wieder auszulesen, was ich auch bereits alle 5 Minuten tue. Diesen JSON-String wandele ich per JSONEXPORT in eine komma-getrennte dat-Datei um (wetter.dat), die das Wetter-Programm auch versteht.

Die Datei enthält immer genau 2 Zeilen, die erste Zeile ist die Überschrift der Felder und in der 2. Zeile stehen die Werte.

Nun möchte ich eine 2. Datei erstellen, in der die aufgelaufenen Werte der wetter.dat Zeile für Zeile gesammelt werden. So könnte ich diese Datei zu Hause auf dem Wetterstations-Rechner, der auch rund um die Uhr läuft, z.B. alle 1-2h einlesen und die Statistik usw. fortführen, ohne dass der Rechner im Ferienhaus eingeschaltet ist.
 

Das Einlesen und die Umwandlung heruntergeladenen der JSON-Datei gelingen bereits. Ich weiß aber nicht wie ich es hin bekomme, dass jeweils die erste Zeile gelöscht wird und dann in einer zweiten Datei fortlaufend gesammelt wird. Die erzeugte wetter.dat hat am Ende anscheinend keinen Zeilenvorschub, da die bisherigen Versuche nicht zu neuen Zeilen geführt haben, sondern es entstand eine lange Zeile mit Überschriften und Werten.

 

Ein Beispiel der Datei "wetter.dat" habe ich als "wetter.txt" beigefügt.

Gibt es eine Möglichkeit das mit Hilfe eines Batch o.ä. umzusetzen, so dass ich es alle 5 Minuten mit der Aufgabenverwaltung automatisch ausführen kann.

 

Vielen Dank und viele Grüße

Volker

wetter.txt

Link to post

Moin,

wenn eine Datei zwei Zeilen hat, liefert Get-Content ein Array mit zwei Mitgliedern. Der Index 1 liefert dann genau die zwote Zeile. Diese kannst Du dann per Add-Content an die fortgeschriebene Datei anfügen. Ein Einzeiler also ;-) 

Link to post

Hallo cj_berlin,

 

vielen Dank. Ich habe mir folgenden Script erstellt, mit es funktioniert.

(get-content -path d:\wswin\import\* -include wetter.dat -tail 1 | add-content -path wunderground.dat)

Was nicht funktioniert hat ist Powershell direkt mit dem Script in der Aufgabenplanung ausführen zu lassen. Es wird zwar angezeigt, dass "Der Vorgang wurde erfolgreich beendet" aber die Datei wurde nicht ergänzt.
Ich habe es nun über einen Batch mit folgendem Inhalt zum Laufen bekommen, die ich ebenfalls mit der Aufgabenplanung aufrufe:

@echo off 
powershell.exe -command "d:\Wswin\Import\zusammenf_1.ps1"

Vielen Dank nochmal und viele Grüße

 

Volker

 

Link to post

Volker,

 

schön, dass es jetzt funktioniert. Ich hätte da nur noch eine Frage ... nur aus reiner Neugier: Warum verwendest Du für den Aufruf von Powershell mit einer Skript-Datei den Parameter -Command und nicht -File? Woher hast Du das?

Link to post
  • 2 weeks later...
Am 25.1.2021 um 03:53 schrieb BOfH_666:

Volker,

 

schön, dass es jetzt funktioniert. Ich hätte da nur noch eine Frage ... nur aus reiner Neugier: Warum verwendest Du für den Aufruf von Powershell mit einer Skript-Datei den Parameter -Command und nicht -File? Woher hast Du das?

Es gibt aber auch User die "powershell -h" eingeben und lesen. Der Unterschied zwischen -File und -Command ist mir erst später aufgegangen.

Link to post
vor 1 Minute schrieb muenster:

Es gibt aber auch User die "powershell -h" eingeben und lesen. Der Unterschied zwischen -File und -Command ist mir erst später aufgegangen.

Das ist aber - wenigstens gefühlt - eine deutliche Minderheit. Man liest das ja ziemlich häufig und ich hatte mich gewundert, wo das wohl herkommt.  ;-) 

Link to post

Join the conversation

You can post now and register later. If you have an account, sign in now to post with your account.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...