sokratonis
Goto Top

PS - Textdatei lesen - bestimmten Inhalt in Dateinamen schreiben

Hallo,

ich bräuchte mal Eure Hilfe zu folgendem Sachverhalt:

Eine Datei wird von meinem Programm mit Datum und Zeitstempel als .txt-Datei ausgegeben (Beispiel: 2411-20191216-1124.txt).
Ich möchte nun, dass automatisch (per Script oder Programm) die Datei durchsucht wird (Beispiel: Vertragsnr+00001).
Die Nummer 00001 soll nun automatisch, zusätzlich, in den Dateinamen geschrieben werden (Beispiel: 00001-2411-20191216-1124.txt).
Die originale Datei kann:
a) umbenannt werden
b) gelöscht und eine neue erstellt werden

Mir ist dazu erstmal nichts eingefallen, aber sicherlich gibts hier jemanden der mir helfen kann face-smile.

Content-ID: 526173

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

Ausgedruckt am: 19.11.2024 um 01:11 Uhr

Kraemer
Lösung Kraemer 16.12.2019 um 16:00:48 Uhr
Goto Top
Moin,

dazu brauchst du
get-content (kennst du schon)
nen RegEx
und ein Rename-Item

Gruß
142232
Lösung 142232 16.12.2019 aktualisiert um 16:43:13 Uhr
Goto Top
Beispiel: Vertragsnr+00001
Das sagt erst mal nicht viel, steht das da genau so da oder besteht der String "Vertragsnr" auch aus Zahlen, steht da das "+" auch so oder soll das nur hier als Verbinder fungieren??
Wie @Kraemer schon sagt regex und Rename-Item, alles in allem ein Einzeiler, aber wie gesagt Regex muss entsprechend an die Gegebenheiten angepasst werden:
Get-ChildItem 'F:\Files' -File -Filter *.txt | ?{(Get-Content $_.Fullname -raw) -match 'Vertragsnr\+(\d+)'} | rename-item -NewName {"$($matches[1])_$($_.Name)"} -Verbose  
Der Regex hier sucht nur nach dem ersten Auftauchen vom String "Vertragsnr mit einem nachfolgenden "+" und dahinter alle folgenden Zahlen, welche extrahiert werden.
nettworker
nettworker 16.12.2019 um 19:49:48 Uhr
Goto Top
Also ganz ehrlich, das wäre mir für ein Shell Script alles zu unsicher.
Für sowas würde ich mir mit .Net oder ähnlichen Programmiertools eine kleine Anwendung schreiben. Wenns da um Vertragsnummern geht sind das ja scheinbar sensible / wichtige Daten.
Sowas gehört in eine Datenbank mit entsprechenden Logfiles / Backups etc.
Kraemer
Kraemer 16.12.2019 um 22:15:52 Uhr
Goto Top
Also ganz ehrlich, Äpfel und Birnen.
sokraTonis
sokraTonis 20.12.2019 aktualisiert um 11:48:28 Uhr
Goto Top
Hallo nettworker,

danke für deinen Hinweis. Es handelte sich bei den Vertragsnummern aber tatsächlich nur um ein Beispiel. Die Information die wirklich extrahiert werden sind keineswegs sensibel.

Danke an Kraemer und serial, das Thema ist dank Eurer Hilfe geklärt.