Биты и байты.

Биты и байты.

среда, 1 февраля 2017 г.

Парсинг XML c помощью powershell

Допустим поступила такая задача, есть много файлов XML


В каждом файле есть нужный атрибут


Необходимо подготовить запрос для выборки из базы

$folderPath= "C:\Shared\BR_Playlist\1\"
$HouseIds= @()
foreach ($item in dir $folderPath)
{
$xmlFilePath = $folderPath + $item.Name
[xml] $xmlContent = [xml] (Get-Content -Path $xmlFilePath)
#Write-Host $item.Name
foreach( $event in $xmlContent.playlist.program.event )
{
    #Write-Host $event.housenumber
    $HouseIds+=$event.housenumber
}
}
#{$_} 
$HouseIds | sort-object | Get-Unique | Select-Object   @{Name="Comnd";Expression={"Select '"+$_+"' as evnt UNION ALL"  }}





P\S
В качестве бонуса, небольшой скрипт по проверке даты изменения файла и отправке сообщений на почту.

$fullPath = "\\server\c$\import\Excel.xls"
$lastWrite = (get-item $fullPath).LastWriteTime
$timespan = new-timespan -days 2 

if (((get-date) - $lastWrite) -gt $timespan) {
    send-mailmessage -to "user1@domain.ru" -from "user2@domain.ru" -subject "Employee List Update fail" -Body "Please check " +$fullPath  -SmtpServer "smtp.domain.ru"


#Список переменных окружения
Get-Childitem -Path Env:* | Sort-Object Name

Добавляем в планировщик задачу и при необходимости добавляем логирование в параметрах
powershell.exe C:\Windows\Tasks\ImportBVUsers.ps1 >> C:\Windows\Tasks\BVImportLog.txt


About