DirkS74 10 Geschrieben 19. Dezember 2021 Melden Teilen Geschrieben 19. Dezember 2021 Hallo zusammen Vielleicht kann mir jemand helfen oder mir eine Richtung vorschlagen, ich habe einen Ordner mit *.txt Dateien. Einige dieser Dateien haben im Namen eine spezielle Bezeichnung wie G12345 (die Zahl kann sich ändern, beginnen aber immer mit G). Diese Dateien sollen gefunden werden und die G1234 am Anfang des Namens verschoben werden (z.B. vorher DateiG1234.txt -> G1234Datei.txt) Anschließend sollen diese Daten an einen anderen Ort kopiert werden. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 19. Dezember 2021 Melden Teilen Geschrieben 19. Dezember 2021 (bearbeitet) vor 19 Minuten schrieb DirkS74: Vielleicht kann mir jemand helfen oder mir eine Richtung vorschlagen Das ist ein bissl nebulös. Wobei genau brauchst Du denn Hilfe? ... und auch wenn Du die Frage hier beriets im Scripting-Forum gestellt hast ... ist das eine regelmäßige Aufgabe? Falls nicht, tun es vielleicht auch Tools wie TotalCommander oder FreeCommander oder irgend ein Multi-Rename-Tool. Die können so was auch. Falls es ein Script sein soll, wäre meine Empfehlung es mit PowerShell zu machen. Wenn Du in dieser Richtung einen Schubs möchtest, beginnst Du vielleicht mit den folgenden Doku-Themen: Get-ChildItem Foreach-Object Move-Item Where-Object about_Comparison_Operators bearbeitet 19. Dezember 2021 von BOfH_666 Zitieren Link zu diesem Kommentar
DirkS74 10 Geschrieben 19. Dezember 2021 Autor Melden Teilen Geschrieben 19. Dezember 2021 Ich dachte dabei an Powershell, die Dateien z.B. mit get-childitem suchen den Namen umschreiben und dann an definierter Stelle abspeichern. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 19. Dezember 2021 Melden Teilen Geschrieben 19. Dezember 2021 Supi. Klingt wie ein guter Plan. Und wobei brauchst Du da jetzt Hilfe? Zitieren Link zu diesem Kommentar
cj_berlin 1.315 Geschrieben 19. Dezember 2021 Melden Teilen Geschrieben 19. Dezember 2021 vor einer Stunde schrieb BOfH_666: Falls es ein Script sein soll, wäre meine Empfehlung es mit PowerShell zu machen. ich glaube, das meint er mit "PWS" Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 19. Dezember 2021 Melden Teilen Geschrieben 19. Dezember 2021 vor 5 Minuten schrieb cj_berlin: ich glaube, das meint er mit "PWS" ... ich war mir da nicht ganz sicher ... deshalb frug ich lieber nochmal nach. Ich konnte mir nicht erklären, warum man das an dieser Stelle auf diese Weise abkürzen sollte. Zitieren Link zu diesem Kommentar
DirkS74 10 Geschrieben 19. Dezember 2021 Autor Melden Teilen Geschrieben 19. Dezember 2021 Hilfe benötige ich beim zerlegen des Dateinamens und dann in richtiger Reihenfolge wieder zusammen setzten. Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 19. Dezember 2021 Melden Teilen Geschrieben 19. Dezember 2021 (bearbeitet) Na das hättest Du auch gleich sagen können. $BaseName = 'DateiG1234' $BaseName -match '(?<FesterTeil>Datei)(?<VariablerTeil>G\d{4})' $NewBaseName = $Matches.VariablerTeil + $Matches.FesterTeil | Out-Null $NewBaseName bearbeitet 19. Dezember 2021 von BOfH_666 1 Zitieren Link zu diesem Kommentar
DirkS74 10 Geschrieben 19. Dezember 2021 Autor Melden Teilen Geschrieben 19. Dezember 2021 vor 10 Minuten schrieb BOfH_666: Na das hättest Du auch gleich sagen können. $BaseName = 'DateiG1234' $BaseName -match '(?<FesterTeil>Datei)(?<VariablerTeil>G\d{4})' $NewBaseName = $Matches.VariablerTeil + $Matches.FesterTeil | Out-Null $NewBaseName Vielen Dank , das hilft mir weiter. Ich werde es testen und gebe eine Rückmeldung. Schönen Abend noch. Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 20. Dezember 2021 Melden Teilen Geschrieben 20. Dezember 2021 vor 22 Stunden schrieb BOfH_666: $BaseName -match '(?<FesterTeil>Datei)(?<VariablerTeil>G\d{4})' Bin anderer Meinung $BaseName -match '(?<Prefix>.*)(?<GNumber>G\d+)(?<Suffix>.*)' $Matches Zitieren Link zu diesem Kommentar
BOfH_666 577 Geschrieben 20. Dezember 2021 Melden Teilen Geschrieben 20. Dezember 2021 OMG ... jetzt geht die übliche REGEX-Haarspalterei los ... .. .eigentlich haben wir dafür zu wenig Info von Dirk. Also denn ... angenommen der Dateiname ist länger und komplexer ... $BaseName = 'BlaKeksDateiG1234undsoweiterg12349876Ende' $BaseName -match '(?<Prefix>.*)(?<GNumber>G\d+)(?<Suffix>.*)' $Matches ... liefert ... Name Value ---- ----- Suffix Ende GNumber g12349876 Prefix BlaKeksDateiG1234undsoweiter 0 BlaKeksDateiG1234undsoweiterg12349876Ende Die gewünschten Bestandteile sind enthalten, Prefix und GNumber liefern aber nicht die Ergebnisse, die laut Frage erwartet werden. 1 Zitieren Link zu diesem Kommentar
daabm 1.354 Geschrieben 21. Dezember 2021 Melden Teilen Geschrieben 21. Dezember 2021 Hast ja recht - ich hab noch überlegt, ob ich lazy/greedy und "case sensitive" noch erwähnen soll, hab dann aber darauf verzichtet 2 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.