У меня есть файлы xml, хранящиеся в папке текущей даты, как здесь: Refer this link
Теперь я хочу прочитать определенную часть xml и распечатать ее в файле csv. Как в ссылке Как я могу использовать $ location в качестве входных данных для чтения xml-файлов только на основе текущей папки даты?
Как читать xml-файлы, хранящиеся в папке текущей даты?
Я попытался с помощью:
$locatexml = -item -path $rptdir -itemtype Directory -Name ("XML_$(Get-Date -f yyyy_mm_dd)")
Но я получаю ошибку - Отсутствует выражение после унарный '-'. Как назначить текущую папку $ locatexml?, чтобы я мог ссылаться на все файлы xml, существующие для текущей папки даты?
Мой код, который пытается читать XML-файлы, расположенные в папке дата:
Удалены -itemtype от $ locatexml, я назначая FULLNAME к другой переменной $ locatexml2.
$locatexml = get-item -path $reportdir -Name ("XML_$(Get-Date -f yyyy_MM_dd)")
**Do I need $locatexml2 here?**
$locatexml2 = "$($location.fullname)"
Function DoRpt($locatexml2)
{
$rptOut="Asm"
Get-ChildItem $locatexml2 | ForEach-Object {
$file = Get-Content -path $locatexml2\$_ -totalcount 15
try {
$asm = [regex]::matches($file[5], 'asm=".*" ')[0].value -replace 'asm="(.*)" ','$1'
$rptOut=$rptOut+"`n$Asm,$locatexml2\$_"
} catch {}
}
Set-Content -path $testdir\test.csv -value $rptOut
}
XML-выглядит, как показано ниже:
<?xml version="1.0" encoding="utf-8"?>
<Rpt Version="10.0">
<Targets>
<Target="\\Shared\Data\SB\app\bin\test.dll">
<Mods>
<Mod="test.dll" asm="1.0.0000.000">
</Mod>
</Mods>
</Target>
</Targets>
</Rpt>
Я перепробовал все методы присвоения $ locatexml, как metnioned ниже, но я не получаю через .. Есть ли что-то мне не хватает в приведенный выше код?
Я действительно нуждаюсь в $ locatexml2 здесь?
Спасибо!
'-item'? может быть, 'get-item'? –
если я использую Get-Item, я получаю сообщение об ошибке: get-Item: невозможно найти параметр, соответствующий параметру name item-type. Также, когда он пытается индексировать xml-файлы, хранящиеся в текущей папке даты, я получаю отказ в доступе к папке. Мне нужно установить некоторые разрешения здесь? –
Вам не нужен переключатель '-ItemType' с' Get-Item' или 'Get-ChildItem'. Он используется с «New-Item», чтобы указать, какой элемент вы собираетесь создавать. – vonPryz