Hallo Jan,
ich habe das jetzt so gebastelt:
# Variablen
$RootVerzeichnis = "C:\Temp\DPC"
$SuchenNach = "20\d{12}"
# 1tes XML File auslesen
$XMLPath = Get-ChildItem $RootVerzeichnis\IN\ -Filter *.xml | Select-Object FullName -First 1
[xml]$xml = Get-Content -Path $XMLPath | Out-String
# XML Ergebnisse
$RGFILE = $xml.XML.Table.Filename
$RGNR = $xml.XML.Table.Rechnungsnummer
# XML Ergebnisse anzeigen
echo $RGFILE
echo $RGNR
# Datei umbenennen
Get-ChildItem $RootVerzeichnis\IN\ -Filter *.pdf | ? Name -imatch $($RGFILE) | Rename-Item -NewName {$_.Name -replace $SuchenNach,$RGNR}
Leider klappt das mit dem Auslesen der XML in Zeile 8 nicht.
Die Variable von Zeile 7 wird korrekt angezeigt
FullName
--------
C:\Temp\DPC\IN\Rechnung_Legler_20190619165503.xml
Danach kommt allerdings für mich unverständlich der folgende Fehler:
PS C:\temp\DPC> [xml]$xml = Get-Content -Path $XMLPath
Get-Content : Das Laufwerk wurde nicht gefunden. Ein Laufwerk mit dem Namen "@{FullName=C" ist nicht vorhanden.
In Zeile:1 Zeichen:13
+ [xml]$xml = Get-Content -Path $XMLPath
+ ~~~~~~~~~~~~~~~~~~~~~~~~~~
+ CategoryInfo : ObjectNotFound: (@{FullName=C:String) [Get-Content], DriveNotFoundException
+ FullyQualifiedErrorId : DriveNotFound,Microsoft.PowerShell.Commands.GetContentCommand
Warum wird der Wert 'Fullname' mit in die Variable aufgenommen ?
Merci für die Hilfe
Hallo Jan, $RGNR geht nicht, kommt aus dem XML für die spätere benamung. Ich kann jedoch auf den Dateinamen in der XML zugreifen und diesen als $RGFile verwenden.
Hab es mit -ExpandProperty hinbekommen
Jetzt fehl noch das löschen und die Schleife drumherum....