(powershell) per Schleife best. Spalten v. Datei einlesen u. in anderer Datei ausgeb.

zauberpulver

Newbie
Registriert
Nov. 2015
Beiträge
1
Ein freundliches Hallo in die Runde,

nach bisher lediglich passivem lesen und verfolgen in diesem Forum, benoetige nun auch ich euren Rat und habe mich angemeldet. Ueber die SuFu habe ich nichts Konkretes finden koennen, daher erstelle ich dieses neue Thema.

Ich bin was der betr. Thematik anbelangt noch Anfaenger und komme bei einer gestellten Aufgabe nicht weiter. Folgendes soll per Powershell-Skript erledigt werden:

1. Den Inhalt einer TXT-Datei einlesen (bspw. aufgabe1.txt).
2. Von der eingelesenen Datei soll in jeder Zeile die 5. Spalte in eine neue Datei geschrieben (bspw. aufgabe1neu.txt) und anschliessend ausgegeben werden.
3. Sollte die neue Datei veraendert werden, soll durch den 1x Aufruf des Skriptes der Inhalt aus 1. u. 2. wieder ueberschrieben werden.

Das Ganze soll ueber eine Schleifenkonstruktion bewerkstelligt werden.

Meine Idee waere, fuer 1. u. 2. die Inhalte per

Get-Content -path /zur/datei/aufgabe1.txt [0][5]

und

Set-Content -path /zur/datei/aufgabe1neu.txt

einzulesen und entsprechend in die zweite Datei zu schreiben.

Fuer 3. wuerde ich Clear-Content verwenden wollen, sprich bevor Set-Content die Werte schreibt die neue Datei leeren lassen.

Was haltet ihr davon?

Leider hapert es an der Umsetzung in ein Skript. Ich weiss einfach nicht wie ich am besten anfangen soll und welche Schleifenart (for, while...) die richtige fuer mein Vorhaben ist, daher freue ich mich auf eure Hinweise und Tipps.

Bitte entschuldigt, wenn mein Text keine Umlaute enthaelt, ich schreibe ueber ein Amerikanisches Tastatulayout.

Schon mal eine Riesen Dankeschoen fuer eure Ratschlaege.
 
Bevor Du dich an sowas traust, solltest Du dich mit der "Sprache" vertraut machen. Also arbeite dich einfach durch ein paar Beispiele. Sonst führt das dazu, daß die User hier dir die Lösung präsentieren und Du einfach abschreibst.

Wenn Du mit einer anderen Sprach, wie z.B. Basic oder Java/C besser vertraut bist, kannst Du die Scripte auch mit VBS oder JS erstellen.
 
zauberpulver schrieb:
Folgendes soll per Powershell-Skript erledigt werden

Warum? Geht es hierbei konkret um Anwendung von Powershell oder um die Lösung des Problems?

1. Den Inhalt einer TXT-Datei einlesen (bspw. aufgabe1.txt).
2. Von der eingelesenen Datei soll in jeder Zeile die 5. Spalte in eine neue Datei geschrieben (bspw. aufgabe1neu.txt) und anschliessend ausgegeben werden.
3. Sollte die neue Datei veraendert werden, soll durch den 1x Aufruf des Skriptes der Inhalt aus 1. u. 2. wieder ueberschrieben werden.

An sich braucht man dafür kein "Programm". Ein simpler Kommandozeilenaufruf (Perl) reicht:

$> perl -lane 'print $F[4]' aufgabe1.txt > aufgabe1neu.txt

Das würde die Aufgabe bereits lösen. Unter Windows kann man das durch Installation einer bash mit enthaltenem Perl bekommen.

Das Ganze soll ueber eine Schleifenkonstruktion bewerkstelligt werden.

Auch hier: geht es mehr um das Erlernen von Powershell?
 
Würde in etwa so aussehen:

Code:
foreach($line in (Get-Content "c:\pfad\zur\datei.txt"))
{
    $5spalte = $line.Split(";")[4]
    $5spalte >> "c:\pfad\zur\neuen\datei.txt"
}

3. verstehe ich nicht. Wenn du sagts: "Sollte die neue Datei veraendert werden", dann musst du die neue Datei wieder einlesen. Dann allerdings würde ich einen "normalen" for-loop nehmen Linie fpr Linie vergleichen...
 
Zurück
Oben