Вы там больше всего заблуждаетесь (я думаю, мне нужен образец вашего XML-файла, чтобы быть уверенным), я думаю, вы застряли здесь
Move-Item "C:\temp\source\*.xml" "C:\temp\destination\FX" -Force
С этой строкой кода вы говорите переместить все файлы XML , и я думаю, что вы должны просто ссылаться на текущий файл в вашем цикле. Вот оно (переписано чуть-чуть для более легкой отладки цикла ForEach
).
$dir = 'C:\temp\source'
$xmlFiles = Get-ChildItem -Path $dir -Filter *xml
ForEach($xmlFile in $xmlFiles){
$Instrument = Select-Xml -Xpath '/deal' -Path $xmlFile.FullName -ErrorAction SilentlyContinue
If($Instrument.node.innertext -eq "FX_Cross"){
Move-Item -Path $xmlFile.FullName -Destination "C:\temp\destination\FX" -Force
}
Else{
Move-Item -Path $xmlFile.FullName -Destination "C:\temp\destination\" -Force
}
}