Mit Powershell externe Datei auslesen
Hallo, ich mal wieder. (Komme irgendwie nicht mit der Textextraktion via Powershell klar).
Ich habe folgende externe Datei mit 5 Zeilen : (pat.dat - Ist ein Auszug aus einem Dicom-Dump) :
Ich kriege es nicht hin (Versucht via findstr /B zu filtern).
Ich muß als Ergebnis folgendes erhalten :
TEST_29_06_2005_Kopf_routine_MR_HEAD
Der Name steht immer in der Zeile betitelt mit (0010,0010) in den eckigen Klammern.
Das Datum steht immer in der Zeile betitelt mit (0008,0020) in den eckigen Klammern
Die Routine steht immer in der Zeile betitelt mit (0032,1060) in den eckigen Klammern
Die Aufnahmeart steht immer in der Zeile betitelt mit (0029,1018) in den eckigen Klammern
Der Body steht immer in der Zeile betitelt mit (0018,0015) in den eckigen Klammern.
Es kann also explizit nach den (zahl,zahl) feldern gesucht werden um den String aus den eckigen Klammern auszulesen.
Wobei ich die Sonderzeichen ^ nicht gebrauchen kann (^ löschen und Leerzeichen durch _ ersetzen).
Die Strings Zeilen brauche ich jeweils an eine Variable gebunden da ich mit den Einzelstrings später weiterarbeiten muß.
Also z.B.
Wobei die Feldlängen in den eckigen Klammern immer unterschiedlich sein werden, wie z.B. im Feld $name kann durchaus auch "Nachname, Vorname" stehen.
Krieg das einfach nicht hin.
Ich habe folgende externe Datei mit 5 Zeilen : (pat.dat - Ist ein Auszug aus einem Dicom-Dump) :
(0010,0010) PN [TEST^] # 6, 1 PatientName
(0008,0020) DA [20050629] # 8, 1 StudyDate
(0032,1060) LO [KOPF routine] # 12, 1 RequestedProcedureDescription
(0029,1018) CS [MR] # 2, 1 CSASeriesHeaderType
(0018,0015) CS [HEAD] # 4, 1 BodyPartExamined
Ich kriege es nicht hin (Versucht via findstr /B zu filtern).
Ich muß als Ergebnis folgendes erhalten :
TEST_29_06_2005_Kopf_routine_MR_HEAD
Der Name steht immer in der Zeile betitelt mit (0010,0010) in den eckigen Klammern.
Das Datum steht immer in der Zeile betitelt mit (0008,0020) in den eckigen Klammern
Die Routine steht immer in der Zeile betitelt mit (0032,1060) in den eckigen Klammern
Die Aufnahmeart steht immer in der Zeile betitelt mit (0029,1018) in den eckigen Klammern
Der Body steht immer in der Zeile betitelt mit (0018,0015) in den eckigen Klammern.
Es kann also explizit nach den (zahl,zahl) feldern gesucht werden um den String aus den eckigen Klammern auszulesen.
Wobei ich die Sonderzeichen ^ nicht gebrauchen kann (^ löschen und Leerzeichen durch _ ersetzen).
Die Strings Zeilen brauche ich jeweils an eine Variable gebunden da ich mit den Einzelstrings später weiterarbeiten muß.
Also z.B.
$name=enthält "TEST"
$datum=enthält "29_06_2005"
$routine=enthält "KOPF_routine"
$aufnahme=enthält "MR"
$body=enthält "HEAD"
Wobei die Feldlängen in den eckigen Klammern immer unterschiedlich sein werden, wie z.B. im Feld $name kann durchaus auch "Nachname, Vorname" stehen.
Krieg das einfach nicht hin.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 1750596783
Url: https://administrator.de/forum/mit-powershell-externe-datei-auslesen-1750596783.html
Ausgedruckt am: 22.12.2024 um 08:12 Uhr
1 Kommentar