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-ID: 148018

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

Ausgedruckt am: 22.11.2024 um 09:11 Uhr

TsukiSan
TsukiSan 31.07.2010 um 01:43:57 Uhr
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
tray-park
tray-park 02.08.2010 um 16:25:07 Uhr
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