如何使用 PowerShell 拆分整个列表

zii*_*ico 5 csv powershell sharepoint

在我的 CSV 文件中,有“SharePoint 站点”列和其他一些列。我正在尝试将 ID 从“SharePoint Site”列中拆分出来,并将其放入名为“SharePoint ID”的新列中,但不确定如何执行此操作,因此如果我能获得任何帮助或建议,我将不胜感激。

$downloadFile = Import-Csv "C:\AuditLogSearch\New folder\Modified-Audit-Log-Records.csv"

(($downloadFile -split "/") -split "_") | Select-Object -Index 5  
Run Code Online (Sandbox Code Playgroud)

CSV 文件

SharePoint Site
Include:[https://companyname-my.sharepoint.com/personal/elksn7_nam_corp_kl_com]
Include:[https://companyname-my.sharepoint.com/personal/tzksn_nam_corp_kl_com]
Include:[https://companyname.sharepoint.com/sites/msteams_c578f2/Shared%20Documents/Forms/AllItems.aspx?id=%2Fsites%2Fmsteams%5Fc578f2%2FShared%20Documents%2FBittner%2DWilfong%20%2D%20Litigation%20Hold%2FWork%20History&viewid=b3e993a1%2De0dc%2D4d33%2D8220%2D5dd778853184]
Include:[https://companyname.sharepoint.com/sites/msteams_c578f2/Shared%20Documents/Forms/AllItems.aspx?id=%2Fsites%2Fmsteams%5Fc578f2%2FShared%20Documents%2FBittner%2DWilfong%20%2D%20Litigation%20Hold%2FWork%20History&viewid=b3e993a1%2De0dc%2D4d33%2D8220%2D5dd778853184]
Include:[All]

Run Code Online (Sandbox Code Playgroud)

拆分后,它将显示在新列“SharePoint ID”下

SharePoint ID
2. elksn
3. tzksn
4. msteams_c578f2
5. msteams_c578f2
6. All

Run Code Online (Sandbox Code Playgroud)

小智 1

尝试这个:

# Import csv into an array
$Sites = (Import-Csv C:\temp\Modified-Audit-Log-Records.csv).'SharePoint Site'

# Create Export variable
$Export = @()

# ForEach loop that goes through the SharePoint sites one at a time
ForEach($Site in $Sites){
    
    # Clean up the input to leave only the hyperlink
    $Site = $Site.replace('Include:[','')
    $Site = $Site.replace(']','')

    # Split the hyperlink at the fifth slash (Split uses binary, so 0 would be the first slash)

    $SiteID = $Site.split('/')[4]

    # The 'SharePoint Site' Include:[All] entry will be empty after doing the split, because it has no 4th slash.
    # This If statement will detect if the $Site is 'All' and set the $SiteID as that.

    if($Site -eq 'All'){
        $SiteID = $Site
    }

    # Create variable to export Site ID
    $SiteExport = @()
    $SiteExport = [pscustomobject]@{
        'SharePoint ID' = $SiteID
    }
    
    # Add each SiteExport to the Export array
    $Export += $SiteExport
}

# Write out the export
$Export
Run Code Online (Sandbox Code Playgroud)