Я запускаю сценарий 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 списка с хэштегами. Я не хочу имя и хэштеги. Только имена мне нужно получить в выходном файле. Может кто-нибудь, пожалуйста, помогите по этому сценарию?

1 ответ1

1

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

Вы можете проанализировать результаты файла с помощью встроенных командлетов 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

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

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

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