You’d think this wouldn’t be that hard of a task. However, I spent about an hour wading through misinformation and poor code snippets to figure this out.

To determine a file’s size from within PowerShell, use the following snippet:

$var = Get-Item [filename]
$var.length

In my specific case, I used:

$file = Get-Item .g2mdlhlpx.exe
$file.length/1KB
70.390625

So why all the confusion? After a right thorough search of Google, I came back with what I eventually figured out was some pretty crazy things. One was even from a Microsoft MVP who said to load a variable with files thusly:

$var = "file.txt"

The problem with that was that executing ‘$var.length’ always returned “8”. See why? I eventually figured out that it was because I was feeding the variable a string. I know, this is scripting 101. No, this is scripting 001. I’m a Windows admin. Cut me some slack.

The secret is in the use of the cmdlet Get-Item. Huzzah! It was the good folks at #PowerShell on FreeNode (Thanks BartekB!!) that dispelled my confusion in seconds flat.

I can only hope that my blog post will make it’s way up the search engine rankings to dispel some of the confusion.