Jump to content

1 Zeile aus Datei entfernen, mit Powershell


Direkt zur Lösung Gelöst von epsodus,
Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Empfohlene Beiträge

Geschrieben

Hallo,

 

folgende Codierung. UTF-8.

 

Die Datei sieht vom Inhalt wie folgt aus:

1TRANS20200128  100GTR XML Download Rep0001  10298310003       0000000016DTCCCDT 20200128   05:21    RDT 20200128   05:21
<?xml version="1.0" encoding="UTF-8" standalone="yes"?>

Damit die XML Strucktur wieder lesbar ist, muß die erste Zeile raus.

Geschrieben (bearbeitet)

Hänge mal bitte bei Olafs "Out-File" ein "-Encoding utf8" dahinter. Funktioniert es dann?

 

Edit:

Microsoft unterscheidet zwischen "UTF8NoBOM" und "UTF8". Mir erschließt sich der Unterschied nicht. // Powershell 6.0 +

 

Die Powershell 5.1 hat default ein Encoding:

  • Out-File -> Unicode
  • Set-Content -> Default -> ANSI

 

Die Powershell 6.0 +

  • Out-File -> UTF8NoBOM
  • Set-Content -> UTF8NoBOM

 

Das sollte hier Klarheit in das Verhalten bringen.

bearbeitet von MurdocX
  • Beste Lösung
Geschrieben

Hallo,

 

ich bin wirklich blö…..  Mit eurem Script konnte ich meinen Wunsch umsetzen.

Mein Fehler war, dass ich euer Script im Funktionsblock eingesetzt habe, wo die Abarbeitung jedes einzelnen Files erfolgte.

 

Ich habe euer Script jetzt an den Anfang des Funktionsaufrufes gesetzt, hier liegen alle Dateien gesammelt im Verzeichnis. Euer Scriptteil wird dann einmalig aufgerufen und

alle Dateien werden abgearbeitet. Erst danach rufe ich meinen Funktionsblock auf.

 

Einen riesen Dank, habe jetzt was dazugelernt und danke für Eure Hilfe

 

 

  • 2 Jahre später...
Geschrieben

Moin zusammen,

 

liest hier noch einer der Experten ?

 

Mit PowerShell in einer Datei suchen und ersetzten, bekomme ich noch hin.

Hab jetzt ein, naja muß zugeben für mich unlösbares, Problem :-(

 

Habe eine Datei in der folgendes geändert werden muß:

 

Suche eine Zeile die mit „H100“ anfängt, wenn nächste Zeile mit „I00“ anfängt suche nächste Zeile die mit „H100“ anfängt.
wenn nächste Zeile nicht mit „I00“ anfängt geh zum ende der Zeile, füge ein Leerzeichen ein und entferne Zeilenumbruch
Das mach so lange bis nächste Zeile mit „I00“ anfängt

 

Ist sowas möglich mit Powershell ?

 

Gruß

Der Peter

 

 

Geschrieben

@Damian oh sorry :-( OK

 

 

ja naja For-Schleife ok.

In der gleichen Datei ersetze ich per Skript die Umlaute, das hab ich gerade noch so hinbekommen.

Vielleicht ist es möglich  das skript zu erweitern ? könnte mir da jemand helfen ?

 

 

 

$ersetzungspfad = "C:\Zwischenablage\*" 
$search = @("ö","ä","ß", "ü")
$replace = @("oe","ae","ss","ue")
$schleife = "y"
$i=0 
if($schleife -ieq "y"){ 
    foreach ($s in $search){
        Get-ChildItem -Path $ersetzungspfad -Include *.*,*.properties| Foreach-Object {Get-Content $_ | Out-String | Foreach-Object {$_.Replace($s,$replace[$i])} | Set-Content $_}
        $i++}}

 

Geschrieben
vor einer Stunde schrieb Der_Peter:

oh sorry :-( OK

Ich würde empfehlen, mit einem eigenen Thread nochmal neu anzufangen. ;-) 

 

vor einer Stunde schrieb Der_Peter:

Vielleicht ist es möglich  das skript zu erweitern ?

Klar ... is immer ne gute Idee. Ich würde aber erstmal Deinen bisherigen Code korrigieren/verbessern. Dein Ansatz die Umlaute zu ersetzen ist wahnsinnig ineffizient. Du liest jede Datei insgesamt 4 mal ein, um ein paar Umlaute zu ersetzen und schreibst jede Datei auch wieder 4 mal neu. Ich würde empfehlen, das eher anders rum zu machen. ;-)   ... und was ist mit großen Ös, Üs und Äs? ;-) 

Der letzte Beitrag zu diesem Thema ist mehr als 180 Tage alt. Bitte erstelle einen neuen Beitrag zu Deiner Anfrage!

Schreibe einen Kommentar

Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.

Gast
Auf dieses Thema antworten...

×   Du hast formatierten Text eingefügt.   Formatierung jetzt entfernen

  Only 75 emoji are allowed.

×   Dein Link wurde automatisch eingebettet.   Einbetten rückgängig machen und als Link darstellen

×   Dein vorheriger Inhalt wurde wiederhergestellt.   Editor-Fenster leeren

×   Du kannst Bilder nicht direkt einfügen. Lade Bilder hoch oder lade sie von einer URL.

×
×
  • Neu erstellen...