Хэштеги приходят при экспорте данных в файл CSV скриптом powershell

441
murali kuruva

Я запускаю сценарий powershell для получения данных из библиотеки документов SharePoint. При запуске скрипта данные поступали в csv-файл, но имена столбцов идут с ";#"хэштегами. Например, имена, имена менеджеров и т. Д. Идут вместе с ними ID number hashtags(123;#). Я хочу получить только имена, имена менеджера, а не хэштеги или идентификационный номер на выходе CSV. Может ли кто-нибудь, пожалуйста, вставить обновленный скрипт для того же.

$web = get-spweb "site Url"  $caseLib = $web.lists | where {$_.title -eq "Document Library"}  $query=new-object Microsoft.SharePoint.SPQuery   $query.ViewFields = "<FieldRef Name='LinkFilename'/><FieldRef Name='Source_x0020_Name'/><FieldRef Name='Content_x0020_Lookup'/><FieldRef Name='Manager'/><FieldRef Name='Assigned_x0020_Person'/><FieldRef Name='City_x0020_Name'/>"  do  {  $caseLibItems=$caseLib.GetItems($query)  $query.ListItemCollectionPosition=$caseLibItems.ListItemCollectionPosition  $listItemsTotal = $caseLibItems.Count  $x = 0  for($x=0;$x -lt $listItemsTotal; $x++)  {  $SourceName = $caseLibItems[$x]["Source_x0020_Name"]  $ContentLookup = $caseLibItems[$x]["Content_x0020_Lookup"]  $Manager = $caseLibItems[$x]["Manager"]  $AssignedTo = $caseLibItems[$x]["Assigned_x0020_To"]  $CityName = $caseLibItems[$x]["City_x0020_Name"]  $str = "" if('$SourceName; $ContentLookup; $Manager; $AssignedTo; $CityName' -ne $null)  {  $str = $caseLibItems[$x]["LinkFilename"].ToString() + $SourceName + $ContentLookup + $Manager + $AssignedTo + $CityName  }  else  {  $str = $caseLibItems[$x]["LinkFilename"].ToString()  }  Write-Output $str| Out-File "path" -Append  }  }while ($query.ListItemCollectionPosition -ne $null)  Write-Host "Exiting" 

Выходной файл я получаю

ABCD;"1234;#ABC travels";"48;#outdated";"157;#Rajukumar";"1246;#Raju";"1534;#England"  AFGV;"2678;#CDF travels";"26;#sourcedata";"24;#Johnson";"2323;#Kumar";"1298;#Japan"  xyza;"45324;#KHR travels";"324;#conducteddate";"136;#Peter";"231;#Helen";"1212;#USA"  MNGR;"11225;#XYZ travels";"368;#mangeddated";"157;#Helen";"1246;#Johnson";"3567;#AUS"  Etc 

В выходной файл я получаю имя ID списка с хэштегами. Я не хочу имя и хэштеги. Только имена мне нужно получить в выходном файле. Может кто-нибудь, пожалуйста, помогите по этому сценарию?

0

1 ответ на вопрос

1
postanote

Вы не показываете, что вы хотите для вашего конечного варианта использования. Пожалуйста, сделайте это, или мы должны угадать. Что вы рассматриваете имена?

Вы можете проанализировать результаты файла с помощью встроенных командлетов CSV. Пример:

$DataSet = ' ABCD;"1234;#ABC travels";"48;#outdated";"157;#Rajukumar";"1246;#Raju";"1534;#England" AFGV;"2678;#CDF travels";"26;#sourcedata";"24;#Johnson";"2323;#Kumar";"1298;#Japan" xyza;"45324;#KHR travels";"324;#conducteddate";"136;#Peter";"231;#Helen";"1212;#USA" MNGR;"11225;#XYZ travels";"368;#mangeddated";"157;#Helen";"1246;#Johnson";"3567;#AUS" '  $DataSet -replace '#|"' |  ConvertFrom-Csv -Delimiter ';' -Header H1,H2,H3,H4,H5,H6,H7,H8,H9,H10 |  Format-Table -AutoSize  # Results  H1 H2 H3 H4 H5 H6 H7 H8 H9 H10  -- -- -- -- -- -- -- -- -- ---  ABCD 1234 ABC travels 48 outdated 157 Rajukumar 1246 Raju 1534 AFGV 2678 CDF travels 26 sourcedata 24 Johnson 2323 Kumar 1298 xyza 45324 KHR travels 324 conducteddate 136 Peter 231 Helen 1212 MNGR 11225 XYZ travels 368 mangeddated 157 Helen 1246 Johnson 3567 

Я вставил заголовки, чтобы определить конкретные столбцы. Затем вы можете выбрать то, что хотите вывести.

Я вручную удалил разрывы строк, поэтому вам нужно изменить код так, чтобы он не был выходным элементом, или вам придется с этим справиться.