Я хочу ежедневно экспортировать данные из библиотеки документов SharePoint, и файл CSV необходимо сохранить в соответствии с соглашением об именах как Dataname_yyyyMMdd. Согласно приведенному ниже сценарию необходимо экспортировать данные из библиотеки sharepoint в один файл CSV с именем Data_yyyyMMdd. Затем необходимо импортировать данные из Data_yyyyMMdd и добавить "заголовок" в файл, а затем экспортировать в новый конечный CSV-файл с именем "DataName_yyyyMMdd".

Во время выполнения скрипта я получаю только один файл как Data_yyyyMMdd. Данные из файла не импортировались в окончательный CSV-файл и не генерировали окончательный выходной файл DataName_yyyyMMdd. Пожалуйста, исправьте меня, если вы делаете неправильно в сценарии. Пожалуйста, поделитесь мне правильным сценарием.

Скрипт Powershell

$ web = get-spweb $ siteUrl $ caseLib = $ web.lists | где {$ _. title -eq $ listTitle} $ query = новый объект Microsoft.SharePoint.SPQuery $ query.ViewFields = "" $ query.RowLimit = 5000

делать

$ ListName1 = "Данные" $ ExportFolder1 = «C:\Users\» $ ExportName1 = Get-Date -f "yyyyMMdd" $ ExportPath1 = $ ExportFolder1 + $ ListName1 + $ ExportName1 + «.csv» $ ListName = "Dataname_" $ ExportFolder = «C:\Users\csv\» $ ExportName = Get-Date -f "yyyyMMdd" $ ExportPath = $ ExportFolder + $ ListName + $ ExportName + «.csv» {$ caseLibItems = $ caseLib.GetItems($ query) $ query.ListItemCollectionPosition = $ caseLibItems.ListItemCollectionPosition $ listItemsTotal = $ caseLibItems.Подсчитайте $ x = 0 для ($ x = 0; $ x -lt $ listItemsTotal; $ x ++) {$ Description = $ caseLibItems [$ x] ["DocumentSetDescription"] $ str = "" if ('$ Description' -ne $ null) {$ Description = $ Description -replace " n"," " -replace " r", "" $ str = $ caseLibItems [$ x] ["LinkFilename"].ToString () + '}' + $ Description} else {$ str = $ caseLibItems [$ x] ["LinkFilename"].Нанизывать() }

Запись-вывод $ str | Out-File $ ExportPath1 -Append
}

} while ($ query.ListItemCollectionPosition -ne $ null)

Import-csv $ ExportPath1 -delimiter "}" -Header "Number", "Description" | export-csv $ ExportPath -NoTypeInformation

Write-Host "Выход"

1 ответ1

0

Экспорт данных списка SharePoint в CSV

Добавить-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction SilentlyContinue

Получить в Интернете

$ web = Get-SPWeb -identity "sitename"

Получить список целей

$ list = $ web.Списки ["Ежемесячный Журнал Расписание"]

Массив для хранения результата - PSObjects

$ ListItemCollection = @()

# Получить все элементы списка, в которых статус равен "Выполняется".Предметы | Where-Object {$ ["Status"] -eq "Выполняется"} | foreach {$ ExportItem = New-Object PSObject $ ExportItem | Add-Member -MemberType NoteProperty -name "Title" -value $ ["Title"] $ ExportItem | Add-Member -MemberType NoteProperty -Name "Department" -value $ ["Department"] $ ExportItem | Add-Member -MemberType NoteProperty -name "Status" -value $ ["Status"] $ ExportItem | Add-Member -MemberType NoteProperty -name "Priority" -value $ _ ["Priority"]

# Добавить объект со свойством в массив $ ListItemCollection += $ ExportItem} # Экспортировать массив результатов в файл CSV $ ListItemCollection | Export-CSV "c:\List.txt" -NoTypeInformation

Утилизировать веб-объект

$ Веб.Dispose()

Все поля Экспорт с помощью PowerShell

переменные

$ SiteUrl = "site" $ OutPutFile = "location"

Получить веб и список информации о пользователях

$ web = Get-SPWeb $ SiteUrl $ UserInfoList = $ Web.SiteUserInfoList Write-host "Общее количество найденных элементов:" $ UserInfoList.ITEMCOUNT

Массив для хранения результата - PSObjects

$ ListItemCollection = @()

# Получить все элементы списка, где статус "В процессе" $ UserInfoList.Предметы | foreach {write-host "Идентификатор элемента обработки:" $ _ ["ID"]

$ ExportItem = New-Object PSObject #Get Каждое поле foreach($ Field in $ .Поля){$ ExportItem | Add-Member -MemberType NoteProperty -name $ Field.InternalName -value $ [$ Field.InternalName]
} #Добавить объект со свойством в массив $ ListItemCollection += $ ExportItem

}

Экспортировать массив результатов в файл CSV

$ ListItemCollection | Export-CSV $ OutPutFile -NoTypeInformation Write-host "Список информации пользователя, экспортированный в $($ OutputFile) для сайта $($ SiteURL)"

$ Веб.Dispose()

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .