Babysteps in PowerShell part deux: Variables! Real Proper Variables!
Alright, I've been tinkering with PowerShell for a few evenings now, and the latest thing I've started to unravel is how variables work.
Variables are prefixed with a dollar sign. [This is probably an idea they got from the world's simplest code generator ;-) ].
And they seems to use implicit typing [aka 'Duck Typing']
Now watch as we get the basics sorted out, and prepare to move on to trickier things...
First we'll declare the variable 'Oswald', by assigning something to it:
PS C:\> $Oswald = "explorer" OK let's see if that worked... PS C:\> echo $Oswald <-- echo is an alias for 'Write-Output'... 'print' is another alias for it explorer <-- Oswald's value is 'explorer'. Nice Okay, now let's check what type of variable we've got: PS C:\> $Oswald.gettype() IsPublic IsSerial Name BaseType -------- -------- ---- -------- True True String System.Object Okay, now let's use the variable as a parameter: PS C:\> get-process $Oswald Handles NPM(K) PM(K) WS(K) VM(M) CPU(s) Id ProcessName ------- ------ ----- ----- ----- ------ -- ----------- 375 12 17584 26304 90 21.91 3068 explorer
Okay. Groovy stuff. But there's more to come...
Now for the Wicked Stuff!
Once Upon A PowerShell i went looking for a cmdLet to display a list of all the current drives.
I found one, '
Get-PSDrive' which does exactly that... but i was gobsmacked at what else it revealed!
'Power shell drives' are not just your boring old '
C:' etc -- they can be all sorts of hierarchical structures, such a registry keys, environment variables, functions(!) and more.
(I bet you can create your own powershell drives. [yep '
New-PSDrive', aka '
mount'] Now imagine one for navigating a relational database... hey there's a fun and magical challenge!)
PS C:\> cd Variable: <-- 'cd' is an alias for 'Set-Location' The way cool thing is that 'Variable' is a power shell drive, that shows you all the variables you have access to. A bit like exploring the 'locals' window while debugging in visual studio. Only they're not just local. Let's look for all variables starting with 'O'... PS Variable:\> dir o* <-- 'dir' is an alias for 'Get-ChildItem'... ('ls' also does the trick) Name Value ---- ----- Oswald explorer <-- Here's Oswald! PS Variable:\>
And there ends my learnings for tonight.
I'm thinkin powerSHELL is more like powerSHEAVEN!
(ah... power-puns.)Next → ← Previous
My book "Choose Your First Product" is available now.
It gives you 4 easy steps to find and validate a humble product idea.