Using PowerShell scripts to modify document properties in SharePoint 2010

I recently had to find a way to add a value to the "Title" property of documents in a list.  There are many ways to do this, but PowerShell seems to be pretty powerful when it comes to this type of direct manipulation.  Since all my customer needed was to assign a value to the "Title" property, we decided to loop through all the documents and assign "Title" from "Name".  Here is a sample of that script.

  # Load SharePoint library
 [system.reflection.assembly]::LoadWithPartialName("Microsoft.Sharepoint")
 
 # Connect to the site collection https://SP2010 and store the object in the $site variable
 $site = New-Object Microsoft.SharePoint.SPSite("https://SP2010")
 
 # Connect to the root site in the site collection and store the object in $root
 $root = $site.rootweb
 
 # Store the Shared Documents document library in a variable $Docs
 $docs = $root.lists["Shared Documents"]
 
 # Display all the documents, their titles, names and IDs
 $docs.items | format-table -property title,name,id
 
 # Updates the title for each item in the list with Name
 $docs.items | ForEach { $_["Title"] = $_["Name"]; $_.Update() }
 
 # Display all the documents, their titles, names and IDs
 $docs.items | format-table -property title,name,id
 

The important line is where the items are being enumerated.  The tricky part is making sure you don't miss the period before the Update call.