매일 SharePoint 데이터 추출


0

SharePoint 문서 라이브러리 데이터를 매일 내보내고 csv 파일을 명명 규칙으로 Dataname_yyyyMMdd로 저장해야합니다. 아래 스크립트에 따라 Sharepoint 라이브러리의 데이터를 Data_yyyyMMdd라는 이름의 CSV 파일로 내 보내야합니다. 그런 다음 Data_yyyyMMdd에서 데이터를 가져 와서 파일에 "헤더"를 추가 한 다음 이름 "DataName_yyyyMMdd"로 새 최종 출력 CSV로 내 보내야합니다.

스크립트를 실행하는 동안 Data_yyyyMMdd로 하나의 파일 만 가져옵니다. 파일의 데이터가 최종 csv 파일로 가져 오지 않았으며 최종 출력 파일 DataName_yyyyMMdd를 생성하지 않았습니다. 스크립트에서 잘못된 일이 있으면 수정하십시오. 정확한 스크립트를 알려주십시오.

Powershell 스크립트

$ web = get-spweb $ siteUrl $ caseLib = $ web.lists | 여기서 {$ _. title -eq $ listTitle} $ query = new-object 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.Count $ x = 0 for ($ x = 0; $ x -lt $ listItemsTotal; $ x ++) {$ Description = $ caseLibItems [$ x] [ "DocumentSetDescription "] $ str =" "if ( '$ Description'-ne $ null) {$ Description = $ Description-바꾸기"n"," " -replace "r "," "$ str = $ caseLibItems [$ x] ["LinkFilename "]. ToString () + '}'+ $ 설명} else {$ str = $ caseLibItems [$ x] ["LinkFilename "]. ToString ( )}

쓰기 출력 $ str | 파일 외부 $ ExportPath1-추가
}

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

Import-csv $ ExportPath1-구분 기호 "}"-머리글 "숫자", "설명"| export-csv $ ExportPath -NoTypeInformation

쓰기 호스트 "종료"

답변:


0

SharePoint 목록 데이터를 CSV로 내보내기

Add-PSSnapin Microsoft.SharePoint.PowerShell -ErrorAction이 자동으로 계속

웹 얻기

$ web = Get-SPWeb -identity "사이트 이름"

대상 목록 얻기

$ list = $ web.Lists [ "매월 스케줄 로그"]

결과를 보유 할 배열-PSObject

$ ListItemCollection = @ ()

# 상태가 "진행 중"인 모든 목록 항목 가져 오기 $ list.Items | Where-Object {$ [ "상태"] -eq "진행 중"} | foreach {$ ExportItem = 새로운 객체 PSObject $ ExportItem | 멤버 추가 -MemberType 참고 Property -name "Title"-value $ [ "Title"] $ ExportItem | 구성원 추가 -MemberType NoteProperty-이름 "부서"-값 $ [ "부서"] $ ExportItem | 멤버 추가 -MemberType NoteProperty -name "상태"-값 $ [ "상태"] $ ExportItem | 멤버 추가 -MemberType NoteProperty -name "Priority"-value $ _ [ "Priority"]

# 속성을 가진 객체를 배열에 추가 $ ListItemCollection + = $ ExportItem} # 결과 배열을 CSV 파일로 내보내기 $ ListItemCollection | Export-CSV "c : \ List.txt"-NoTypeInformation

웹 객체 폐기

$ web.Dispose ()

모든 필드 PowerShell을 사용하여 내보내기

변수

$ SiteUrl = "site"$ OutPutFile = "위치"

웹 및 사용자 정보 목록 가져 오기

$ web = Get-SPWeb $ SiteUrl $ UserInfoList = $ Web.SiteUserInfoList 쓰기 호스트 "발견 된 총 항목 수 :"$ UserInfoList.Itemcount

결과를 보유 할 배열-PSObject

$ ListItemCollection = @ ()

# 상태가 "진행 중"인 모든 목록 항목 가져 오기 $ UserInfoList.Items | foreach {쓰기 호스트 "처리 항목 ID :"$ _ [ "ID"]

$ ExportItem = New-Object PSObject # 각 필드에 대한 각 필드 가져 오기 ($ .Fields의 $ Field ) {$ ExportItem | 멤버 추가 -MemberType NoteProperty -name $ Field.InternalName -value $ [$ Field.InternalName]
} # 속성이있는 개체를 배열에 추가 $ ListItemCollection + = $ ExportItem

}

결과 배열을 CSV 파일로 내보내기

$ ListItemCollection | Export-CSV $ OutPutFile -NoTypeInformation 쓰기 호스트 "$ ($ SiteURL) 사이트에 대한 $ ($ OutputFile)로 사용자 정보 목록 내보내기"

$ web.Dispose ()

당사 사이트를 사용함과 동시에 당사의 쿠키 정책개인정보 보호정책을 읽고 이해하였음을 인정하는 것으로 간주합니다.
Licensed under cc by-sa 3.0 with attribution required.