Unless you’ve been hiding under a large log for the last few
years, most of you who are responsible for administering windows have heard of PowerShell
– Microsoft’s extensible scripting language designed to eventually replace all
of its previous scripting environments for administrative tasks (such as
vbscript, batch files etc.). As I came
into support from software development, I tended to use VB/VBScript or Perl to
do any server scripting that I had to do, but as times have changed, so has PowerShell,
to the point where not only has it become incredibly feature rich, but it’s now
almost mandatory to use for certain deployments (hello Exchange 2013). Over the last year, I’ve had to start using PowerShell
almost daily, and so I started looking for a development environment to help me
become more productive.
PowerShell comes with a quite good environment out of the box,
called the Integrated Scripting Environment (ISE). This little beauty allows you to write and
debug PowerShell scripts, but I’ve always thought it was a bit clunky –
especially if you’re used to Visual Studio / VB. It was while I was looking for some PowerShell
examples that I came across a fantastic add-on for PowerShell ISE that’s I’d like
to share with you called ISESteroids…
ISESteroids is written by PowerShell guru Dr. Tobias Weltner,
and it transforms the default PowerShell ISE environment into a PowerShell
editing powerhouse! It empowers and
educates the PowerShell developer in the same way that Visual Studio did for
Basic/C++ developers back in the day.
Allow me to elucidate further…
All the things that I love about Visual Studio / VB6 are
here – context sensitive highlighting, auto-completion, context-sensitive help,
combined with a rich debugging environment.
But that’s just for starters – there’s so much more, so here are a few
of my favourite bits…
Better
context sensitive help
ISE comes with its own context sensitive help – highlight a
keyword, press F1 and you’ll get something like this…
That’s all well and good, but if you’re a PowerShell novice,
some examples would be nice. If you
press ALT & F1 together though…
Isn’t that SO much better?
Not only that, but this help is also available as an additional tab in
the add-ons window…
Peachy!
Real time
search
Searching through code is always tedious, but ISESteroids
real time search / function navigator option makes it less painful. The real
time search bar is located at the top right of the editor window. Enter your text, and the frame turns either
red (if no matches) or green (matches found).
Every time you press RETURN, your cursor moves to the next match, SHIFT
& ENTER moves you to the previous match.
When you’ve found a match, if you press F2, all the matches are
highlighted & selected – you can then simply replace ALL of the matches just
by entering your replacement text!
Bookmarks
Perhaps my favourite feature of ISESteroids is
bookmarking. When you’re working with
long sections of code, it’s handy to be able to find a particular piece quickly. Pressing CTRL & F7 in your code inserts a
temporary bookmark on that code line – pressing it again removes the bookmark. You can then move between book marks by pressing
F7. These bookmarks are remembered, so
when you next open the file, they are still there.
There is however, a more permanent bookmarking feature which
uses a custom comment. If you insert
<#bookmark text#> this is
treated by ISESteroids as a permanent
bookmark. If you then press the
Bookmarking menu button, you’ll get a bookmarking window with the current
permanent bookmarks listed – you can then just click on them to move to that
point in the code. The bookmarking
window can be pinned so it’s always available.
Code Snippets
Wouldn’t it be nice if you could enter in commonly used code
at the touch of a button – well you can with code snippets? This sort of feature is well known in other
coding environments, and now you can have it in PowerShell. You can enter a code
snippet in one of three ways: you can enter its shortcut (F4 gives you the
entire list of shortcuts…)
Or you can press CTRL & J, which gives you an
intellisense like dropdown of snippets you can navigate…
Or
you can right click the editor, and select the “start snippets menu option, which
gives you yet another way of inserting a snippet…
But even better than that, ISESteroids lets you create your
own snippets with the snippet manager. Once Open , you go through some basic steps (like where to save your snippet, and what you want to call the snippet...
At which point, you come to the actual snippet editor itself - which also includes it's own instructions on how to create your snippet.
I followed these instructions and created a snippet that allowed me to create a permanent bookmark...
Autorefactor
When you’re learning any new programming language, you’ll
hit problems with semantics or idiosyncrasies that language has. ISESteroids includes a lovely tool called the
Autorefractor – it’s essentially a PowerShell clean-up / code correcting
tool. Here’s a piece of bad code… :)
You can see that on the left hand bar, there are small
lightbulbs – each one of these is a problem that the Autorefractor has
identified. Most of the ones in the code
above are double quotes I’ve used incorrectly.
If I click on the lightbulbs, the Autorefractor will correct these
entries for me like so…
See how it’s corrected the quotes? It’s also corrected a couple of lines where I
was using a PowerShell alias (cd) to Set-Location!
Editor
console flip
This is so useful. I prefer
giving myself as much coding space as I can, but sometimes you need to use the
console window. Usually, it’s a case of
split screening the window so that the console window is visible (see the
images above), but is there a better way – yup, the console flip…
Here’s the same editor window as before, but this time, I’ve
maximized the editor pane. What if I
need the console? Well, see the PowerShell
icon in the bottom right? Look what
happens if I click it…
The console pane has now taken the place of the editor
window. I can get back by clicking on
the Window icon on the bottom left of the pane…
What you can't really get a sense of from these screengrabs is how easy all this tools are to use, and how useful they actually are. The best way to test it is to try it out yourself , or take a look at some of the videos available on the powertheshell website. If I can get a few moments, I'll create a quick youtube video highlighting the areas I really like!
What you can't really get a sense of from these screengrabs is how easy all this tools are to use, and how useful they actually are. The best way to test it is to try it out yourself , or take a look at some of the videos available on the powertheshell website. If I can get a few moments, I'll create a quick youtube video highlighting the areas I really like!
In summary, if you do ANY programming in PowerShell, ISESteroids
should be at the top of your shopping list – it’s too damn useful.. :)
No comments:
Post a Comment