2016-08-18 98 views
0

ドキュメントライブラリのURLがある場合、ライブラリ内からすべてのアイテム(この場合はフォルダ)を取得するにはどうすればよいですか?私はいくつかのことを試しましたが、私はそれを得ることができません。SharePointでPowerShellを使用してドキュメントライブラリからアイテムのリストを取得する

$web = Get-SPWeb($completeUrl) 
$spDocumentLibrary = $completeUrl + "/DocumentLibrary" 
$spSite = Get-SPSite -Identity http://url.com 
$website = $spSite.OpenWeb() 
$listItem = $website.GetListItem($completeUrl) 

をそして、それは私がここから行くためにどこreeaallyわからないException calling "GetListItem" with "1" argument(s)...

で失敗します。

は、これは私がこれまで試したものです。私が興味を持っているのは、文書ライブラリにあるすべてのフォルダを取得していることです。私が知っているのは$completeUrl + /DocumentLibraryです。例えば、http://url.com/../../DocumentLibraryのようになります。しかし、私はそれが間違っているようです。

ヒント

答えて

1

私はあなたのSharePointのライブラリ構築についてはわかりませんが、私の視点からは、リスト選択がありません。

$spDocumentLibrary = $completeUrl + "/DocumentLibrary" 
$spSite = Get-SPSite -Identity http://url.com 
$website = $spSite.OpenWeb() 
$list = $website.Lists["List_Name_Here"] 
$items = $list.GetItems() 
2

これは、ドキュメントライブラリのすべてのフォルダ名を出力します:

Add-PSSnapin Microsoft.SharePoint.Powershell -ErrorAction SilentlyContinue  
$web = Get-SPWeb 'http://urltoyourweb' 
$list = $web.Lists['DocumentLibrary'] 

function ListFolders($folder) { 
    Write-Host $folder.Name 
    $folder.Subfolders | % { if($_.item -ne $null) { ListFolders $_}} 
} 

ListFolders $list.RootFolder 

説明:

ListFoldersはサブフォルダがnullでない場合は、自分自身を呼び出す関数です。これは再帰関数と呼ばれます。今度はSPListのルートフォルダを指定して、サブフォルダコレクションを繰り返し処理します(%For-Eachの略です)

これは、それ:

##Same as $folder.Subfolders | % { if($_.item -ne $null) { ListFolders $_}} 
foreach($sfolder in $folder.SubFolders) 
{ 
    if ($sfolder.item -ne $null) 
    { 
     ListFolders $sfolder 
    } 
} 
関連する問題