ctrl+shift+p filters: :st2 :st3 :win :osx :linux
Browse

Powershell​Utils

by SublimeText ST2

Run powershell commands from within Sublime Text.

Details

  • 2011.04.25.10.31.18
  • github.​com
  • github.​com
  • 7 years ago
  • 1 hour ago
  • 6 years ago

Installs

  • Total 5K
  • Win 4K
  • OS X 359
  • Linux 132
Feb 22 Feb 21 Feb 20 Feb 19 Feb 18 Feb 17 Feb 16 Feb 15 Feb 14 Feb 13 Feb 12 Feb 11 Feb 10 Feb 9 Feb 8 Feb 7 Feb 6 Feb 5 Feb 4 Feb 3 Feb 2 Feb 1 Jan 31 Jan 30 Jan 29 Jan 28 Jan 27 Jan 26 Jan 25 Jan 24 Jan 23 Jan 22 Jan 21 Jan 20 Jan 19 Jan 18 Jan 17 Jan 16 Jan 15 Jan 14 Jan 13 Jan 12 Jan 11 Jan 10 Jan 9
Windows 0 1 0 0 0 0 0 0 0 2 0 0 0 0 0 0 0 0 0 0 3 0 1 1 0 0 0 0 0 0 0 1 0 0 0 0 1 0 0 0 0 1 0 0 1
OS X 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Linux 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Readme

Source
raw.​githubusercontent.​com

PowershellUtils package for Sublime Text

This plugin provides an interface to filter buffer text through a Windows Powershell pipeline and run and capture Powershell commands.

Requirements

Windows Powershell v2

Windows Powershell v2 is preinstalled in Windows 7 and later and it's available for previous versions of Windows too under the name Windows Management Framework.

Powershell is a powerful languange and needs to be used carefully to avoid undesired effects.

Getting Started

If you're running a full installation, simply double click on the .sublime-package files. If you're running a portable installation, perform an installation by hand.

Lastly, run run_powershell from the Python console or bind this command to a key combination:

# In Sublime's Python console.
view.run_command("sublime_cmd")

Using The Windows Powershell Pipeline

  1. Execute run_powershell
  2. Type in your Windows Powershell command
  3. Press enter

All the currently selected regions in Sublime Text will be piped into your command sequencially. In turn, you can access each of this regions through the $_ automatic variable.

Roughly, this is what goes on behind the scenes:

reg1..regN | <your command> | out-string

You can ignore the piped content and treat your command as the start point of the pipeline.

The generated output will be inserted into each region in turn.

Using Intrinsic Commands

(Not all intrinsic commands work.)

The following commands have a special meaning for this plugin:

!mkh
Saves the session's history of commands to a file.
!h
Brings up the history of commands so you can choose one and run it again.

Examples

$_.toupper()
Turns each region's content to all caps.
$_ -replace "\\","/"
Replaces each region's content as indicated.
"$(date)"
Replaces each region's content with the current date.
"$pwd"
Replaces each region's content with the current working directory.
[environment]::GetFolderPath([environment+specialfolder]::MyDocuments)
Replaces each region's content with the path to the user's My Documents folder.
0..6|%{ "$($_+1) $([dayofweek]$_)" }
Replaces each region's content with the enumerated week days.

Caveats

To start a Windows Powershell shell, do either Start-Process powershell or cmd /k start powershell, but don't call Windows Powershell directly because it will be launched in windowless mode and will block Sublime Text forever. Should this happen to you, you can execute the following command from an actual Windows Powershell prompt to terminate all Windows Powershell processes except for the current session:

Get-Process powershell | Where-Object { $_.Id -ne $PID } | Stop-Process

Alternatively, you can use a shorter version:

gps powershell|?{$_.id -ne $pid}|kill

Other Ways of Using PowershellUtils

PowershellUtils can be called with arguments so that the prompt is bypassed. This is interesting if you want to integrate powershell with a separate plugin.