Как вырезать xml-файлы и переместить их в другое место на основе узлов через powershell, пакетный файл

Мне нужно вырезать или переместить файлы XML на основе узлов и т. д. Я хочу выполнить поиск в файле, выбрать EG FX и переместить файлы, содержащие tfx, в другое место.

Я пробовал следующее без успеха

$dir = 'C:\temp\source'
Get-ChildItem -Path $dir -Filter *.xml | Foreach-Object {
  $Instrument = Select-Xml -Xpath '/deal' -Path $_.FullName  -ErrorAction SilentlyContinue
  If($Instrument.node.innertext -eq "FX_Cross"){
    Move-Item "C:\temp\source\*.xml" "C:\temp\destination\FX" -Force
  } Else{
    Move-Item "C:\temp\source\*.xml" "C:\temp\destination\" -Force
  }
}

нет результата выше не работает


person Av8tor1990    schedule 21.05.2019    source источник
comment
Вам следует подумать об использовании вашего текущего объекта в ваших Move-Item командах: Move-Item $_ "C:\temp\destination\FX" -Force в качестве примера.   -  person AdminOfThings    schedule 21.05.2019


Ответы (1)


Вы больше всего там путаетесь (думаю, мне нужен образец вашего 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
    }
}
person FoxDeploy    schedule 21.05.2019
comment
выписка с благодарностью ниже. Мне необходимо проверить MM.DEPOSIT ‹инструмент сделки=MM.DEPOSIT name=MM.DEPOSIT.USD role=TAKER› ‹version›1‹/version› ‹last_modified by=SPGAuctions3149LBN›20190204135352‹/last_modified› ‹manual› N‹/manual› ‹без_согласования›N‹/без_согласования› ‹deal_date›20190204‹/deal_date› ‹deal_time›13:53:43‹/deal_time› ‹deal_datetime›20190204135352‹/deal_datetime›2/trade›date902/trade_date020 trade_time›13:49:42‹/trade_time› ‹/deal› - person Av8tor1990; 22.05.2019