PowerShell ISE will do *everything* (IF YOU LET IT!)

by Michael S. Kaplan, published on 2013/01/23 07:01 -05:00, original URI: http://blogs.msdn.com/b/michkap/archive/2013/01/23/10387424.aspx

I thought I'd blather about the console for a bit.

There are three basic kinds of console applications:

  1. Most console applications emit data that is read later, usually in other tools;
  2. Many other console applications emit data that is generally used right in the console;
  3. A few console applications are interactive with the user.

Some people who spend most of their time with the latter two categories might argue about my wording's claim of common usages, and there are tools that span categories (e.g. using PING's results in a log file), but overall I believe this categorization holds true.

Now let's add internationalization and world readiness to the mix.

For the first category, where the end result is primarily for some other app, WR is easy to do and fully support any characters, whether off code page or supplementary or combining or complex.

Everything can just work.

In the latter two categories, and when the first category initially displays in the console, the WR story is pretty bleak.

Even if you are building completely Unicode console apps and are using TrueType fonts, the best you can hope for when you are off code page or supplementary or combining or complex is square boxes -- otherwise all you get is usually lots of corrupted display and question marks.

This is especialy true in PowerShell, where for then most part it doesn't have to be!

Well, it does have to be for legacy CSRSS/cmd based PowerShell, where these limitations are baked into the architecture.

But the Integrated Scripting Environment (ISE), can support it all, whether off code page or supplementary or combining or complex.

The ISE can even do amazing things with those few proud legacy Unicode console applications I mentioned earlier.

Remember WriteLineRight.exe?

Here it is, in the legacy console with raster fonts:

Even Unicode can't do much with raster fonts!

Let's try with Consolas:

Much better!

But let's try it in the ISE:

Oops, I forgot they stupidly picked Lucida Console as their default font!

Let's go to Tools|Options... and fix that:

That's better!

We don't even have to run WriteLineRight.exe again:

Just one settings change away from magic!

And now my challenge to you PowerShell developers, and you legacy console developers....

Strut your stuff in the ISE, and see what happens.

No offense, but I'm guessing you.aren't quite World Ready yet.... :-)

Joshua on 23 Jan 2013 1:21 PM:

> Strut your stuff in the ISE, and see what happens.

All I get is blurry fonts and "Cannot start "(omitted)". Interactive console applications are not supported."

Get me a terminal that works or it's Unicode support doesn't matter.

L. on 23 Jan 2013 4:44 PM:

Yes, the ISE is very nice compared to the old console.  I had a bit of a hard time getting used to its limitations but it was definitively worth it.  It's a shame these limitations (no interactive console apps, especially) are there, because they are quite significant and IMHO kill any chance of ISE becoming more popular (at least, not soon).

Joshua on 24 Jan 2013 3:29 PM:

I am impressed that Michael Kaplan is obviously moderating posts yet does not filter out posts critical to him or on-topic bashing of MS products.

referenced by

2013/02/20 PowerShell ISE will do *everything* (but good luck finding it on Windows 8 without help!)

2013/02/19 PowerShell ISE will do *everything* (though some assembly may be required!)

2013/02/15 PowerShell ISE (or legacy) will do *everything* (and it's really easy to start!)

go to newer or older post, or back to index or month or day