none
Power Shell Skript für die Änderung einer TXT Datei RRS feed

  • Frage

  • Hallo Leute,

    ich bin neu hier in diesem Forum und Hoffe mit dieser Frage bei euch richtig zu sein.

    Ich habe folgendes Anliegen:

    Ich habe eine Text Datei in der ein Satz steht (Heute ist "Tag")

    Nun möchte ich ein Skript erstellen, welches mir die Datei einliest, mich auffordert den gewünschten Tag einzugben und den Inhalt dann in eine neue Textdatei speichert. Habe schon diese und jende Internet Seite durchforstet aber komme nicht so richtig zum Ziel.

    Folgendes habe ich bisher geschrieben:

    param(
    [string]$Tag)

    $content = Get-Content "D:\Power Shell Skript\abc.txt"


    foreach ($Tag in $content)

        {
            $Tag = read-host "Sag bitte den heutigen Tag"
        }


    Set-Content 'D:\Power Shell Skript\123.txt' $content

    Leider schreibt das Skript genau das gleiche wieder in die Zieldatei, wie es auch in der eingelesenen Datei steht....

    Danke für eure Hilfe

    Montag, 18. November 2013 09:04

Antworten

Alle Antworten

  • Hallo Scholes1989,

    könntest du etwas klarer beschreiben was genau du machen möchtest?

    In deiner Eingabe-Datei stehen alle Wochentage ?
    Die Eingabe-Datei wird eingelesen und du willst die Benutzer-Eingabe mit dem was in deiner Eingabe-Datei steht vergleichen?
    Entspricht die Benutzer-Eingabe einem Wochentag der in der Eingabe-Datei aufgeführt ist, willst du diesen in eine neue Datei schreiben?

    Habe ich dich richtig verstanden?

    Montag, 18. November 2013 09:21
  • Also ich habe eine Text Datei mit dem Namen abc.txt. In dieser Datei steht nur Heute ist "Tag"

    Diese Datei möchte ich nun aufrufen lassen. Dann soll eine Aufforderung kommen, in der steht "bitte den heutigen Tag angeben" Den Tag möchte ich dann eingeben und dann z.B. den ganzen Satz "Heute ist Montag" in einer neuen Datei 123.txt speichern.

    Dies ist nur ein simples Beispiel. Also Ziel habe ich später, eine längere Datei mit mehreren Variablen aufrufen zu lassen, die Variablen einzugeben und die Datei mit den Änderungen neu ab zu speichern.

    So verständlicher? :-) :-)

    Montag, 18. November 2013 09:28
  • $arrContent = Get-Content C:\temp\abc.txt
    
    
    $arrOutContent = @()
    foreach ($Content in $arrContent) {
        $answer = Read-Host "$($Content)"
        $arrOutContent += "$($Content), $($answer)"
    }
    
    Set-Content -Path C:\temp\123.txt -Value $arrOutContent

    abc.txt

    Heute ist
    Morgen ist

    Ich hoffe das hilft ;)

    • Als Antwort vorgeschlagen Peter Kriegel Montag, 18. November 2013 12:38
    • Als Antwort markiert Alex Pitulice Donnerstag, 21. November 2013 08:32
    Montag, 18. November 2013 09:39
  •  


    # Pfad zur Textdatei definieren und in der Variable $Pfad ablegen
    $Pfad = "D:\Temp\test.txt"
    
    # Tag muss nur einmal abgefragt werden
    # Tag mit Read-Host abfragen und in der Variablen $Tag ablegen
    $Tag = Read-Host "Sag bitte den heutigen Tag"
    
    # Text einlesen mit Get-Content | Für jede Zeile wird der text ersetzt | Veränderten Text mit Set-Content wieder zurückschreiben 
    (Get-Content $Pfad) | Foreach-Object {$_ -replace '"Tag"', $Tag} | Set-Content $Pfad

    Dir fehlen sehr viele Grundlagen, ein Forum ist schlecht dafür geeignet um etwas zu Lehren.

    Bitte lies ein gutes PowerShell Buch oder nimm einen Lehrgang.Meine PowerShell Buch Empfehlungen:

    http://www.admin-source.de/BlogDeu/buecher-books

    Kostenlose PowerShell eBooks:

    http://www.admin-source.de/BlogDeu/kostenlose-powershell-ebook-tutorial-workshop-howto


    Meine PowerShell Artikel, Buchtipps und kostenlose PowerShell Tutorials + E-Books
    Mein deutscher PowerShell Blog
    Mein 21 Teiliger PowerShell Video Grundlehrgang
    Deutsche PowerShell Videos auf Youtube
    Folge mir auf:
    Twitter | Facebook | Google+ | Deutsches PowerShell Forum (TechNet)

    • Als Antwort vorgeschlagen Peter Kriegel Montag, 18. November 2013 12:38
    • Als Antwort markiert Alex Pitulice Donnerstag, 21. November 2013 08:31
    Montag, 18. November 2013 09:51
  • Also das funktionier schon mal sehr gut.  Auch wenn ich keinen Plan habe was du da alles schreibst :D

    Kann man denn auch nur die Variable "Tag" austauschen?

    Weil aktuell bekomme ich als Ausgabe Heute ist "Tag", Dienstag

    Aber nur Heute ist Dienstag wäre besser. :-)

    Montag, 18. November 2013 09:53
  • Ja da hast du wohl recht, dass mir die Grundlagen fehlen.

    Habe mir das wohl etwas zu einfach vorgestellt. Habe auch schon versucht mir das ein oder andere anzulesen.

    Aktuell war nur leider noch nicht mehr Zeit um micht noch mehr damit zu beschäftigen.

    Aber danke für die Antworten....

    Montag, 18. November 2013 10:16