Benutzer mit den meisten Antworten
Replace Powershell

Frage
-
Ich versuche eine txt dateien mit Powershell zu verändern und zwar muss folgendes verändert werden
1. Am ende jeder Zeile brfindet sich ein " ; " und das muss weg
2. die Erste Zeile soll gelöscht werden
bisher habe ich nur das hier
$Quelle="U:\Documents\DATEI.txt"
$Ziel="U:\Documents\DATEI.neu.txt"
$Datei = Get-ChildItem $Quelle
foreach ($String in $Datei)
{$Inhalt = Get-Content -Path $String
$Inhalt | foreach {$_ -replace ";"," "}| Out-File -FilePath $Ziel -encoding Default
}Das problem ist es verändert alle Smikolons.
Und wie man die erste Zeile löscht weis ich absolut nicht
Vielen Dank für eure hilfe
Antworten
-
Hi Thomas,
1. Am ende jeder Zeile brfindet sich ein " ; " und das muss weg
bisher habe ich nur das hier
$Inhalt | foreach {$_ -replace ";"," "}| Out-File -FilePath $Ziel -encoding Default
}Mit TrimEnd kannst du das Symokolon einfach löschen:
$Datei = Get-Content $Quelle|Foreach-Object {$_.TrimEnd(';')| Out-File -FilePath $Ziel}hier ist mal ein Beispiel:
http://www.youdidwhatwithtsql.com/trimming-whitespace-with-powershell/3882. die Erste Zeile soll gelöscht werden
Zum Löschen der ersten Zeile probier mal:
get-content $file |
select -Skip 1 |
set-content "$file-temp"
move "$file-temp" $file -Forcesiehe:
http://stackoverflow.com/questions/2074271/remove-top-line-of-text-file-with-powershell
Viele Grüße
Christian- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 11. Juli 2011 18:31
-
Hi Thomas86,
speicher dir den Inhalt als *.ps1 und ruf die Datei in der powershell auf:
$Quelle="d:\test.txt"
$Ziel="d:\testneu.txt"
$Datei = Get-Content $QuelleGet-Content $Quelle| foreach-object {$_.TrimEnd(';')| Out-File -FilePath $Ziel -append}
get-content $ziel | select -Skip 1 | set-content "$ziel-temp"
move "$ziel-temp" $ziel -Force
Viele Grüße
Christian- Als Antwort markiert Thomas86 Mittwoch, 29. Juni 2011 09:07
Alle Antworten
-
Hi Thomas,
1. Am ende jeder Zeile brfindet sich ein " ; " und das muss weg
bisher habe ich nur das hier
$Inhalt | foreach {$_ -replace ";"," "}| Out-File -FilePath $Ziel -encoding Default
}Mit TrimEnd kannst du das Symokolon einfach löschen:
$Datei = Get-Content $Quelle|Foreach-Object {$_.TrimEnd(';')| Out-File -FilePath $Ziel}hier ist mal ein Beispiel:
http://www.youdidwhatwithtsql.com/trimming-whitespace-with-powershell/3882. die Erste Zeile soll gelöscht werden
Zum Löschen der ersten Zeile probier mal:
get-content $file |
select -Skip 1 |
set-content "$file-temp"
move "$file-temp" $file -Forcesiehe:
http://stackoverflow.com/questions/2074271/remove-top-line-of-text-file-with-powershell
Viele Grüße
Christian- Als Antwort markiert Denniver ReiningMVP, Moderator Montag, 11. Juli 2011 18:31
-
Zu 1.
Ich hab deine Zeile Jetzt so eingefügt, allerdings löschte er alles bis auf die erste Zeile, wo liegt mein Fehler
$Quelle="U:\Documents\PRDO.helaba_Fallback_out.txt"
$Ziel="U:\Documents\PRDO.helaba_Fallback_out_kon.txt"
$Datei = Get-ChildItem $Quelleforeach ($String in $Datei)
{
$Datei = Get-Content $Quelle|Foreach-Object {$_.TrimEnd(';')| Out-File -FilePath $Ziel}
}Zu. 2
Wie kann ich es einfügen, so dass es in einem Process erledigt wäre.
ps. ich arbeite heute zum erstmal mit powershell :)
-
Hi Thomas86,
speicher dir den Inhalt als *.ps1 und ruf die Datei in der powershell auf:
$Quelle="d:\test.txt"
$Ziel="d:\testneu.txt"
$Datei = Get-Content $QuelleGet-Content $Quelle| foreach-object {$_.TrimEnd(';')| Out-File -FilePath $Ziel -append}
get-content $ziel | select -Skip 1 | set-content "$ziel-temp"
move "$ziel-temp" $ziel -Force
Viele Grüße
Christian- Als Antwort markiert Thomas86 Mittwoch, 29. Juni 2011 09:07