Wednesday 30 November 2016

Create sub folders in document library using Poweshell

The below script creates multiple folders within a document library; Each folder will have one single subfolder within it.



$webUrl = "http://<siteURL>"
$listName = "Library_Name"
$numberFoldersToCreate = 5;
$folderNamePrefix = "folder";


$web = Get-SPWeb $webUrl
$list = $web.Lists[$listName]

 $StartDateFolder = get-date

for($i=1; $i -le $numberFoldersToCreate; $i++)
{ 

 $folder = $list.AddItem("", [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, "$folderNamePrefix$i")
 $folder.Update()

 Write-Output "Folder created " $folder.Url

# // Creating One subfolder within the folder

 $subFolderURL=$list.ParentWebUrl +"/" + $folder.Url;

#// if your site is a root site collection, then $list.ParentWebUrl will return "/" 
#so use the  line as  $subFolderURL=$list.ParentWebUrl  + $folder.Url; 

 $folder2 = $list.AddItem($subFolderURL, [Microsoft.SharePoint.SPFileSystemObjectType]::Folder, "Subfolder")
 $folder2.Update()

 Write-Output "Sub Folder created = " $folder2.Url
  
  
}
$EndDatefolder=get-date

 $foldercreationtime=NEW-TIMESPAN –Start $StartDateFolder  –End $EndDatefolder

 $f=[string]::Concat("Folder creation time = " ,  $foldercreationtime.Hours , ":" , $foldercreationtime.Minutes,  ":" , $foldercreationtime.Seconds   )

Write-Output   $f

$web.Dispose()

Update SharePoint list using Powershell

$spWeb = Get-SPWeb -Identity http://yourdomain/sites/config
$spList = $spWeb.Lists["AppSettings"]
$spItem = $spList.GetItemById(10013) //or another way that you prefer.
$spItem["Name"] = "MyName"
$spItem.Update()

Get items from SharePoint List using PowerShell script



1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
cls
if((Get-PSSnapin | Where {$_.Name -eq "Microsoft.SharePoint.PowerShell"}) -eq $null) {
    Add-PSSnapin Microsoft.SharePoint.PowerShell;
}

$sourceWebURL = "http://sharepointsite"
$sourceListName = "mylist"

$spSourceWeb = Get-SPWeb $sourceWebURL
$spSourceList = $spSourceWeb.Lists[$sourceListName]
#$spSourceItems = $spSourceList.GetItems()
#$spSourceItems = $spSourceList.GetItemById("1")
$spSourceItems = $spSourceList.Items | where {$_['ID'] -eq 1}

$spSourceItems | ForEach-Object {
    Write-Host $_['ID']
    Write-Host $_['Title']
}
You can either get all the items with GetItems() method currently commented out or you can filter items by some parameters. Filter applied in the script above is also equal to the GetItemById(“1”) method.