127103
Goto Top

Powershell - Select-String -pattern -Pfadangabe

Hallo liebes Forum,

hänge grad an folgendem Problem:

Ich möchte mit Select-String eine Log-Datei nach einem Pfad durchsuchen.
Select-String -path C:\Users\User\test.log -pattern "C:\Users\User\TEST\TRACK28.MPG"  

Es ist für mich ersichtlich dass, das einen Fehler erzeugt da die Slashes als reguläre Ausdrücker erkannt werden. (Oder?)
.\
Sollte abhilfe schaffen, funktioniert aber nur wenn ich NUR nach dem Dateinamen suche...

Folgendes funktioniert:
Select-String -path C:\Users\User\test.log -pattern ".\\TRACK28.MPG"  

Der Code gibt mir aber natürlich zwei Zeilen aus, da die Datei zweimal, in unterschiedlichen Pfaden, existiert.

Jegliche Variationen mit mehrfachen ".\" bringen weder error noch werden Zeilen ausgegeben.
Select-String -path C:\Users\User\test.log -pattern ".\\Users.\\User.\\TEST.\\TRACK28.MPG"  

Würde mich über Hilfe freuen, steh grad auf'm Schlauch.

Danke & Gruß

P.S.
hier Exemplarisch teile der Log Datei

08.02.2016 11:17 | ORIGINAL;C:\Users\User\TESTVIDEO\TRACK28.MPG;15277892
08.02.2016 11:17 | ORIGINAL;C:\Users\User\Videos\_____test äöüßdndre\--- Berg & Tal 676 --\TRACK28 - Kopie.MPG;18937955
08.02.2016 11:17 | ORIGINAL;C:\Users\User\Videos\_____test äöüßdndre\Bergheims\TRACK63.MPG;20076737
08.02.2016 11:17 | ORIGINAL;C:\Users\User\Videos\_____test äöüßdndre\Hänsel - Straße\TRACK63.MPG;20076737
08.02.2016 11:17 | ORIGINAL;C:\Users\User\Videos\_____test äöüßdndre\Hänsel - Straße\Tränen der liebe & $uposm.MPG;18937955
08.02.2016 11:17 | ORIGINAL;C:\Users\User\Videos\_____test äöüßdndre\TRACK28.MPG;18937955
08.02.2016 11:17 | ORIGINAL;C:\Users\User\Videos\TRACK63.MPG;20076737

Content-Key: 295577

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

Ausgedruckt am: 28.03.2024 um 19:03 Uhr

Mitglied: 127103
127103 08.02.2016 um 12:01:17 Uhr
Goto Top
Ja ok ich war mal wieder vorschnell face-wink

natürlich MUSS man den Backslash ja nur mit einem weiteren Backslash maskieren und nicht mit ".\".

Tja ist halt Montag.

Grüße
Mitglied: 114757
Lösung 114757 08.02.2016 aktualisiert um 14:41:28 Uhr
Goto Top
Muss man nicht unbedingt wenn man den NON-Regex Parameter -simplematch verwendet face-wink

Du solltest wissen das hier ohne diesen Parameter mit Regular Expression Syntax gesucht wird, also müsstest du streng genommen auch den Punkt mit einem Backslash maskieren, denn der bedeutet jedes beliebige Zeichen in der Regex-Syntax.

Wie immer mal ab und zu die Doku lesen
https://technet.microsoft.com/de-de/library/hh849903.aspx

Gruß jodel32
Mitglied: 127103
127103 08.02.2016 um 14:41:25 Uhr
Goto Top
Hi jodel,

hab ich tatsächlich auch noch gefunden -simplematch... wollt es so eben ergänzen...
Ich bin eher so der Typ das ich die Doku überfliege, bzw. nur das lese was ich grad brauche... hatte ich glatt unterschlagen bei dem ganzen "Add-Content -Encoding UTF8" und "replace" gedöns----

face-smile Und sonst so?
Mitglied: 114757
114757 08.02.2016 um 14:57:03 Uhr
Goto Top
Zitat von @127103:
face-smile Und sonst so?
Wie meinen ?