tray-park
Goto Top

PowerShell - Dateiinhalt verändern

Ich möchte den Inhalt einer Datei verändern.

Hi,

ich schreibe gerade ein kleines Skript, welches den Inhalt einer Textdatei einlesen, manipulieren und dann in eine andere Datei ausgeben soll.
Bisher sieht das so aus:
$Quelle="D:\Quelle\test.txt"  
$Ziel="D:Ziel\test-fertig.txt"  

$Inhalt=Get-Content -Path $Quelle -TotalCount 10

$InhaltNeu=$Inhalt.item(0).tostring()

$InhaltNeuNeu=$InhaltNeu.Replace("euro","mark")  

Write-Host $InhaltNeuNeu

Ich gebe die Quelle und das Ziel an und lese die ersten 10 Zeilen der Datei ein.
Hier tritt, vorerst, das erste Problem auf.

Ich möchte den Inhalt der Datei als String in eine weitere Variable schreiben, da ich diesen sonst nicht bearbeiten kann.
$InhaltNeu=$Inhalt.item(0).tostring()
Das funktioniert hier aber leider nicht wie ich es mir vorgestellt habe.

Wie kann ich den Inhalt einer Variablen in einen String umwandeln, um diesen manipulieren zu können?

Freue mich über jede Antwort.

Grüße


Tray

Content-Key: 148018

Url: https://administrator.de/contentid/148018

Printed on: April 25, 2024 at 12:04 o'clock

Member: TsukiSan
TsukiSan Jul 30, 2010 at 23:43:57 (UTC)
Goto Top
Hallo tray-park,

ich bin kein Experte in der Powershell, aber trotzdem habe ich ein mulmiges Gefühl bei deinem Code.
Vermutlich Powershell auch face-wink

Schau dir mal dieses Beispiel in Powershell an. Da wird auch replaced und zwar wird hier auch eine Datei in einer Schleife durchsucht
und es sollen etwaige the the in the ersetzt werden:
# Example of PowerShell -replace parameter
clear-Host
$file = Get-ChildItem "D:\powershell\snippets\g*.txt"  
foreach ($str in $file)
{
$content = Get-Content -path $str
$content | foreach {$_ -replace "the the", "the"} | Set-Content $str  
}
write-Host "After replace `n"  
$file
Da steht ein $str in Zeile 6 und ein .tostring kann ich nicht finden.
Noch mehr Beispiele kannst du hier finden.
Allerdings ist die Seite in english.

Gruss
Tsuki
Member: tray-park
tray-park Aug 02, 2010 at 14:25:07 (UTC)
Goto Top
Hi,

danke dir vielmals! Das Beispiel hat mir sehr geholfen.

Hier ist das fertige Skript.
Clear-Host
$Quelle="D:\Quelle\test.txt"  
$Ziel="D:\Ziel\test.txt"  

$Datei = Get-ChildItem $Quelle
foreach ($String in $Datei)
{
$Inhalt = Get-Content -Path $String
$Inhalt | foreach {$_ -replace "euro","mark"} | Out-File -FilePath $Ziel -encoding Default -Append   
}

Grüße


Tray