Benutzer mit den meisten Antworten
Power Shell Skript für die Änderung einer TXT Datei

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' $contentLeider schreibt das Skript genau das gleiche wieder in die Zieldatei, wie es auch in der eingelesenen Datei steht....
Danke für eure Hilfe
Antworten
-
# 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
-
$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
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?
-
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? :-) :-)
-
$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
-
# 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
-
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. :-)
-
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....