Hallo,
ich habe folgendes Problem. Ich möchte aus einer Datei aus der ersten Zeile ab einer bestimmten Stelle einen String auslesen.
Das funktioniert bisher schon, nun habe ich aber das Problem, dass der String in der länge variiert. Mein Code funktioniert leider nur bei einer konstanten Stringlänge.
Vielleicht könnte mir wer auf die Sprünge helfen.
so sieht z.B. eine Zeile aus:
MSH|^~\&|ABCDEFGHIJKMN|ABCDEFGHIJK|123|0001|20230331142323||MDM^T01^MDM_T01|20230331142323301|P|2.5|||AL|NE
Es kann aber sein, dass die Stelle (Zeitstempel fett gedruckt) eine Stelle weniger hat:
MSH|^~\&|ABCDEFGHIJKMN|ABCDEFGHIJK|123|0001|20230331142323||MDM^T01^MDM_T01|2023033114232330|P|2.5|||AL|NE
$quellverzeichnis = "D:\Testpfad\IN" $zielverzeichnis = "D:\Testpfad\IN\MC" $dateityp1 = "*.hl7" $dateityp2 = "*.pdf" while ($true) { # Prüfen ob im Eingangsordner die HL7 und die PDF vorhanden ist $hl7_file = Test-Path -Path D:\Testpfad\IN\* -PathType Leaf -Exclude *.pdf $pdf_file = Test-Path -Path D:\Testpfad\IN\* -PathType Leaf -Exclude *.hl7 if ($hl7_file -and $pdf_file) { # Erste Zeile aus der Datei lesen und ab Position 77 die 18 Stellen anzeigen $wert = (Get-Content $quellverzeichnis\$dateityp1 -TotalCount 1).Substring(76, 17) # erstelle den PDF Namen mit dem Inhalt des Wertes Get-ChildItem -Path $quellverzeichnis\$dateityp2 | Rename-Item -NewName { $wert + ".pdf" } # koppiere die HL7 + PDF in das Zielverzeichnis Move-Item -Path "$quellverzeichnis\$dateityp1" -Destination $zielverzeichnis Move-Item -Path "$quellverzeichnis\$dateityp2" -Destination $zielverzeichnis Write-Host "Datei wurde verarbeitet" } else { #Write-Host "Warte auf beide Dateien..." Start-Sleep -Seconds 2 } }