title, homepage, tagline
| title | homepage | tagline |
|---|---|---|
| Microsoft PowerShell | https://docs.microsoft.com/en-us/powershell/ | PowerShell Core is a cross-platform (Windows, Linux, and macOS) automation and configuration tool/framework. |
To update or switch versions, run webi pwsh@stable (or @v7.4, @beta, etc).
Files
These are the files / directories that are created and/or modified with this install:
~/.config/envman/PATH.env
~/.local/opt/pwsh/
~/.local/share/powershell/Modules
Cheat Sheet
The core benefit of running
pwshon Mac or Linux is that you get a way to debug Windows scripts without having to boot up Windows.
For example, if you want to create a curl.exe -A "windows" | powershell script
for Windows (as we do), it's helpful to be able to do some level of debugging on
other platforms.
How to Use PowerShell with Vim
Assuming you have vim-ale installed - which is included with
vim-essentials - all you need to do is install the
PSScriptAnalyzer module.
See the "Lint & Fmt" section below.
How to Lint & Fmt ps1 Files
You must install PSScriptAnalyzer. Then you can use Invoke-ScriptAnalyzer
and Invoke-Formatter
pwsh -Command "Install-Module -Name PSScriptAnalyzer -Scope CurrentUser -AllowClobber"
To lint:
my_ps1='./my-file.ps1'
pwsh -Command "Invoke-ScriptAnalyzer -Fix -ExcludeRule PSAvoidUsingWriteHost, PSUseDeclaredVarsMoreThanAssignment -Path \"$my_ps1\""
To fmt:
my_ps1='./my-file.ps1'
my_text="$(
pwsh -Command "Invoke-Formatter -ScriptDefinition (Get-Content -Path \"$my_ps1\" -Raw)"
)"
printf '%s\n' "${my_text}" > "${my_ps1}"
Note: it is several hundred times faster to lint and fmt from a native
PowerShell script than from invoking pwsh -Command each time.