epsodus 3 Geschrieben 30. Januar 2020 Autor Melden Teilen Geschrieben 30. Januar 2020 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. Zitieren Link zu diesem Kommentar
MurdocX 949 Geschrieben 30. Januar 2020 Melden Teilen Geschrieben 30. Januar 2020 (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 30. Januar 2020 von MurdocX Zitieren Link zu diesem Kommentar
Beste Lösung epsodus 3 Geschrieben 30. Januar 2020 Autor Beste Lösung Melden Teilen Geschrieben 30. Januar 2020 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 1 Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 30. Januar 2020 Melden Teilen Geschrieben 30. Januar 2020 Moin, prima, danke für die Rückmeldung. Sowas kommt beim Scripting vor. Schön, dass es jetzt funktioniert. Gruß, Nils Zitieren Link zu diesem Kommentar
Der_Peter 1 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 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 Zitieren Link zu diesem Kommentar
cj_berlin 1.313 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 vor 52 Minuten schrieb Der_Peter: Ist sowas möglich mit Powershell ? Absolut. 1 Zitieren Link zu diesem Kommentar
Der_Peter 1 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 Ok, danke für die Antwort. Haste vielleicht auch ne Idee wie ?? Zitieren Link zu diesem Kommentar
cj_berlin 1.313 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 For-Schleife, da kannst Du auf das nächste Element gucken. Zitieren Link zu diesem Kommentar
Damian 1.531 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 @Der_Peter Hallo und Willkommen on Board! Beim deinem ersten Posting hat dir das Board einen Warnhinweis gezeigt, dass der ursprüngliche Thread schon sehr alt ist. Dieser Hinweis hat einen guten Grund und sollte nicht einfach ignoriert werden. Bitte beim nächsten Mal beachten. VG Damian Zitieren Link zu diesem Kommentar
Der_Peter 1 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 @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++}} 1 Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 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? Zitieren Link zu diesem Kommentar
Der_Peter 1 Geschrieben 6. September 2022 Melden Teilen Geschrieben 6. September 2022 Die Großbuchstaben werden richtig übersetzt Aber ok ja hört sich gut an was du schreibst Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.