PowerShell
byexample
supports Microsoft’s PowerShell
.
Run the Microsoft’s PowerShell
examples calling byexample
as:
$ byexample -l pwsh your-file-here # byexample: +skip
Currently byexample
only supports the version for Linux that
you can install from the official
site).
To run the PowerShell
examples in a file you need to select pwsh
as
the language:
$ byexample -l pwsh docs/languages/powershell.md # byexample: +timeout=8
<...>
[PASS] Pass: <...>
Stability:
experimental
- non backward compatibility changes are possible or even removal between versions (even patch versions).
New in
byexample 10.1.0
.
Versions tested
We tested byexample
with the following versions of the language
and the underlying runner or interpreter:
Language | Runner/Interpreter |
---|---|
latest | 7.2.5 |
Find interactive examples
For PowerShell
, byexample
uses the PS>
string as the primary prompt
and -->
as the secondary prompt.
PS> $ComputerName = 'DC01', 'WEB01'
PS> foreach ($Computer in $ComputerName) {
--> echo $Computer
--> }
DC01
WEB01
Syntax errors
Syntax errors are detected and can be part of the example. The format of
the message will depend of the version of PowerShell
however.
PS> echo @"this
ParserError:
Line |
1 | echo @"this
| ~
| No characters are allowed after a here-string header<...>
Known limitations
Type text
The type
feature (+type
) is supported but you have to +pass
the example.
In other words, you cannot check its output.
This limitation comes from PowerShell
that it does not disable the
echo of the terminal and what you type gets mixed with the output in
unexpected/unpredictable ways.
PS> $num = Read-Host # byexample: +input +pass
[i love 42]
PS> echo $num
i love 42
PS> $num = Read-Host num # byexample: +input +pass
num: [i prefer 47!]
PS> echo $num
i prefer 47!
If you don’t set +pass
you will get a warning.
Terminal support
To work with PowerShell
, the ANSI
terminal emulator is
enabled by default (+term=ansi
) and cannot be disabled.
Also, the terminal geometry
cannot by changed after launching the interpreter
so the option +geometry
cannot be used in an example (but it can be
used from the command line)
The amount of rows of the terminal has a minimum value of 128 and this limit is really important: if your outputs have more than 128 lines you will need to increase the geometry or the results may be undefined.
The same for the width of the terminal: minimum of 128 columns.
PowerShell specific options
$ byexample -l pwsh --show-options # byexample: +norm-ws
<...>
pwsh's specific options
-----------------------
None.