Допустим поступила такая задача, есть много файлов 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