<?xml version="1.0" encoding="UTF-8" ?>
<?xml-stylesheet type="text/xsl" href="http://blogs.technet.com/utility/FeedStylesheets/rss.xsl" media="screen"?><rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/" xmlns:wfw="http://wellformedweb.org/CommentAPI/"><channel><title>Hey, Scripting Guy! How Can I Find Files' Metadata?</title><link>http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx</link><description>Hey Scripting Guy! I have a folder of media files, documents, etc., and I would like to see the metadata that is associated with each file. Can I do this with Windows PowerShell? -- EJ 
 Hi EJ, 
 I suspect that you are more interested in "data about</description><dc:language>en-US</dc:language><generator>Telligent Evolution Platform Developer Build (Build: 5.6.50428.7875)</generator><item><title>re: Hey, Scripting Guy! How Can I Find Files' Metadata?</title><link>http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx#3483471</link><pubDate>Mon, 27 Feb 2012 22:47:39 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3483471</guid><dc:creator>joho0</dc:creator><description>&lt;p&gt;This page is really hosed. Here&amp;#39;s the (more) correct script:&lt;/p&gt;
&lt;p&gt;Param ($folder = &amp;quot;C:\test&amp;quot;) #end Param&lt;/p&gt;
&lt;p&gt;Function funLine($strIN) {&lt;/p&gt;
&lt;p&gt;	$strLine = &amp;quot;=&amp;quot; * $strIn.Length&lt;/p&gt;
&lt;p&gt;	Write-Host -ForegroundColor Yellow &amp;quot;`n$strIN&amp;quot;&lt;/p&gt;
&lt;p&gt;	Write-Host -ForegroundColor Cyan $strLine&lt;/p&gt;
&lt;p&gt;} #end funLine&lt;/p&gt;
&lt;p&gt;Function funMetaData() {&lt;/p&gt;
&lt;p&gt;	ForEach($sFolder in $folder) {&lt;/p&gt;
&lt;p&gt;		$a = 0&lt;/p&gt;
&lt;p&gt;		$objShell = New-Object -ComObject Shell.Application&lt;/p&gt;
&lt;p&gt;		$objFolder = $objShell.namespace($sFolder)&lt;/p&gt;
&lt;p&gt;		ForEach ($strFileName in $objFolder.Items()) {&lt;/p&gt;
&lt;p&gt;			funLine( &amp;quot;$($strFileName.Name)&amp;quot;)&lt;/p&gt;
&lt;p&gt;			For ($a ; $a &amp;nbsp;-le 266; $a++) {&lt;/p&gt;
&lt;p&gt;				If($objFolder.getDetailsOf($strFileName, $a)) {&lt;/p&gt;
&lt;p&gt;					$hash += @{ `&lt;/p&gt;
&lt;p&gt;						$($objFolder.getDetailsOf($objFolder.Items, $a)) &amp;nbsp;=`&lt;/p&gt;
&lt;p&gt;						$($objFolder.getDetailsOf($strFileName, $a)) &lt;/p&gt;
&lt;p&gt;					} #end hash&lt;/p&gt;
&lt;p&gt;					$hash&lt;/p&gt;
&lt;p&gt;					$hash.Clear()&lt;/p&gt;
&lt;p&gt;				} #end If&lt;/p&gt;
&lt;p&gt;			} #end For &lt;/p&gt;
&lt;p&gt;			$a=0&lt;/p&gt;
&lt;p&gt;		} #end ForEach&lt;/p&gt;
&lt;p&gt;	} #end ForEach&lt;/p&gt;
&lt;p&gt;} #end funMetaData &lt;/p&gt;
&lt;p&gt;# *** Entry Point ***&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3483471" width="1" height="1"&gt;</description></item><item><title>re: Hey, Scripting Guy! How Can I Find Files' Metadata?</title><link>http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx#3453999</link><pubDate>Sun, 18 Sep 2011 11:36:29 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3453999</guid><dc:creator>Bigteddy</dc:creator><description>&lt;p&gt;I looks like this page was hacked. &amp;nbsp;Here is the fixed up code:&lt;/p&gt;
&lt;p&gt;function funLine($strIN) &lt;/p&gt;
&lt;p&gt;{&lt;/p&gt;
&lt;p&gt; $strLine = &amp;quot;=&amp;quot; * $strIn.length&lt;/p&gt;
&lt;p&gt; Write-Host -ForegroundColor Yellow &amp;quot;`n$strIN&amp;quot;&lt;/p&gt;
&lt;p&gt; Write-Host -ForegroundColor Cyan $strLine&lt;/p&gt;
&lt;p&gt;} #end funline&lt;/p&gt;
&lt;p&gt;$sfolder = &amp;quot;C:\scripts&amp;quot;&lt;/p&gt;
&lt;p&gt;$objShell = New-Object -ComObject Shell.Application&lt;/p&gt;
&lt;p&gt;$objFolder = $objShell.namespace($sFolder)&lt;/p&gt;
&lt;p&gt; &amp;nbsp;foreach ($strFileName in $objFolder.items())&lt;/p&gt;
&lt;p&gt; &amp;nbsp; {funline &amp;quot;$($strFileName.name)&amp;quot;&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; for ($a ; $a &amp;nbsp;-le 266; $a++)&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;{ &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;if($objFolder.getDetailsOf($strFileName, $a))&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;{&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$hash += @{ `&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$($objFolder.getDetailsOf($objFolder.items, $a)) &amp;nbsp;=`&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$($objFolder.getDetailsOf($strFileName, $a)) &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} #end hash&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $hash&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; $hash.clear()&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} #end if&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp;} #end for &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;$a=0&lt;/p&gt;
&lt;p&gt; &amp;nbsp; } #end foreach&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3453999" width="1" height="1"&gt;</description></item><item><title>re: Hey, Scripting Guy! How Can I Find Files' Metadata?</title><link>http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx#3422997</link><pubDate>Wed, 20 Apr 2011 09:58:43 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3422997</guid><dc:creator>WaltonPark</dc:creator><description>&lt;p&gt;Hello, when I run the DisplayMetaData.ps1 script specifying a folder that contains files I get the following error:&lt;/p&gt;
&lt;p&gt;PS C:\&amp;gt; c:\script\displaymetadata.ps1 -folder c:\photos\tn&lt;/p&gt;
&lt;p&gt;You cannot call a method on a null-valued expression.&lt;/p&gt;
&lt;p&gt;At C:\script\displaymetadata.ps1:16 char:44&lt;/p&gt;
&lt;p&gt;+ &amp;nbsp; foreach ($strFileName in $objFolder.items &amp;lt;&amp;lt;&amp;lt;&amp;lt; ())&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;+ CategoryInfo &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: InvalidOperation: (items:String) [], RuntimeException&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;+ FullyQualifiedErrorId : InvokeMethodOnNull&lt;/p&gt;
&lt;p&gt;Any suggestions on how to debug this? &amp;nbsp;My guess is that something is going wrong with &amp;quot;$objShell = New-Object -ComObject Shell.Application&amp;quot; in my environment. &amp;nbsp;Thanks.&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3422997" width="1" height="1"&gt;</description></item><item><title>re: Hey, Scripting Guy! How Can I Find Files' Metadata?</title><link>http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx#3374245</link><pubDate>Fri, 10 Dec 2010 02:30:39 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3374245</guid><dc:creator>DanGle neck</dc:creator><description>&lt;p&gt;Found the problem...&lt;/p&gt;
&lt;p&gt;On line 2: change &amp;quot;funLine($strIN)&amp;quot; to &amp;quot;function funLine($strIN)&amp;quot;&lt;/p&gt;
&lt;p&gt;On Line 8: change &amp;quot;funMetaData()&amp;quot; to &amp;quot;function funMetaData()&amp;quot; &lt;/p&gt;
&lt;p&gt;after line 36: &amp;quot;# *** Entry Point ***&amp;quot;, append a new line 37: &amp;quot;funMetaData&amp;quot;&lt;/p&gt;
&lt;p&gt;Hey Scripting Guy, can you please explain the following in more detail? Where is the loop? It looks like it is only processing one line, but it is not? &amp;nbsp;How does it fill hash table?&lt;/p&gt;
&lt;p&gt;$hash += @{ `&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$($objFolder.getDetailsOf($objFolder.items, $a)) &amp;nbsp;=`&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;$($objFolder.getDetailsOf($strFileName, $a)) &lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;} #end hash&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3374245" width="1" height="1"&gt;</description></item><item><title>re: Hey, Scripting Guy! How Can I Find Files' Metadata?</title><link>http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx#3374237</link><pubDate>Fri, 10 Dec 2010 01:19:08 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3374237</guid><dc:creator>dangle neck</dc:creator><description>&lt;p&gt;When I try to run this, I get the following error. Why?&lt;/p&gt;
&lt;p&gt;PS D:\Users\Dan&amp;gt; D:\_Docs_Dan\P\programming\PowerShell\DisplayMetaData.ps1&lt;/p&gt;
&lt;p&gt;An expression was expected after &amp;#39;(&amp;#39;.&lt;/p&gt;
&lt;p&gt;At D:\_Docs_Dan\P\programming\PowerShell\DisplayMetaData.ps1:8 char:13&lt;/p&gt;
&lt;p&gt;+ funMetaData( &amp;lt;&amp;lt;&amp;lt;&amp;lt; )&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;+ CategoryInfo &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;: ParserError: (:) [], ParentContainsErrorRecordException&lt;/p&gt;
&lt;p&gt; &amp;nbsp; &amp;nbsp;+ FullyQualifiedErrorId : ExpectedExpression&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3374237" width="1" height="1"&gt;</description></item><item><title>re: Hey, Scripting Guy! How Can I Find Files' Metadata?</title><link>http://blogs.technet.com/b/heyscriptingguy/archive/2008/08/13/how-can-i-find-files-metadata.aspx#3295343</link><pubDate>Fri, 20 Nov 2009 13:00:33 GMT</pubDate><guid isPermaLink="false">d5e57398-b9ef-4490-9955-07cbb4e4a80d:3295343</guid><dc:creator>bugiwan</dc:creator><description>&lt;p&gt;Your post was very helpful, but now I would like to change the value of the metadata. &amp;nbsp;can you help. &amp;nbsp;I do not see a method to change the data just to get it. &amp;nbsp;here is the code I have so far.&lt;/p&gt;
&lt;p&gt;$sh = new-object -com shell.application&lt;/p&gt;
&lt;p&gt;$folder = $sh.namespace(&amp;quot;C:\windows&amp;quot;)&lt;/p&gt;
&lt;p&gt;if ($folder) { &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;	$folderitem = $folder.parsename(&amp;quot;clock.avi&amp;quot;) &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;	if ($folderitem) { &amp;nbsp; &amp;nbsp; &amp;nbsp; &amp;nbsp;&lt;/p&gt;
&lt;p&gt;		$name &amp;nbsp;= $folder.getdetailsof($folderitem,0)&lt;/p&gt;
&lt;p&gt;		}&lt;/p&gt;
&lt;p&gt;	}&lt;/p&gt;
&lt;p&gt;If ($name) {&lt;/p&gt;
&lt;p&gt;&amp;quot;The file c:\windows\clock.avi is:&amp;quot;&lt;/p&gt;
&lt;p&gt;&amp;quot;{0,-20} {1}&amp;quot; -f &amp;quot;File Name&amp;quot;, $name&lt;/p&gt;
&lt;div style="clear:both;"&gt;&lt;/div&gt;&lt;img src="http://blogs.technet.com/aggbug.aspx?PostID=3295343" width="1" height="1"&gt;</description></item></channel></rss>