tech.guitarrapc.cóm

Technical updates

PowerShell ISE で psedit を用いてコンソールから直接ファイルを開いて編集する

bash や zsh など では、 vim hoghogepath や emacs を使ってファイルの編集が可能です。

PowerShell ではどうなのか。 powershell.exe では出来ませんが、 powershell_ise.exe を使っているときは、psedit コマンドで、コンソールにそのファイルを開いてすぐに編集、保存をすることが可能です。

今回はその紹介。 

PowerShell ISE

本ブログでも何度も紹介している、 PowerShell ISE (Integrated Scripting Environment) です。

win + r から powershell_ise などで起動することが出来る、 PowerShell 純正の 開発環境です。

今回のやり方は、 Interactive Console と言われる powershell.exe ではなく、 ISE 環境である powershell_ise.exe を用います。

psedit

psedit は PowerShell ISE 専用のコマンドレットの一つです。 概要を見てみましょう。

Get-Command psedit | select *

このような動作をします。

HelpUri             : 
ScriptBlock         : param([Parameter(Mandatory=$true)]$filenames)
                      
                          foreach ($filename in $filenames)
                          {
                              dir $filename | where {!$_.PSIsContainer} | %{
                                  $psISE.CurrentPowerShellTab.Files.Add($_.FullName) > $null
                              }
                          }
                      
CmdletBinding       : True
DefaultParameterSet : 
Definition          : param([Parameter(Mandatory=$true)]$filenames)
                      
                          foreach ($filename in $filenames)
                          {
                              dir $filename | where {!$_.PSIsContainer} | %{
                                  $psISE.CurrentPowerShellTab.Files.Add($_.FullName) > $null
                              }
                          }
                      
Options             : None
Description         : 
Verb                : 
Noun                : 
HelpFile            : 
OutputType          : {}
Name                : psEdit
CommandType         : Function
Visibility          : Public
ModuleName          : 
Module              : 
RemotingCapability  : PowerShell
Parameters          : {[filenames, System.Management.Automation.ParameterMetadata], [Verbose, System.Management.Automation.ParameterMetadata], [Debug, System.Management.Automation.ParameterMetadata], [ErrorAction, System.Management.Automation.ParameterMetadata]...}
ParameterSets       : {[-filenames] <Object> [<CommonParameters>]}

Help を見てみましょう

Get-Help psedit -full

NAME
    psEdit
    
SYNTAX
    psEdit [-filenames] <Object>  [<CommonParameters>]
    
    
PARAMETERS
    -filenames <Object>
        
        Required?                    true
        Position?                    0
        Accept pipeline input?       false
        Parameter set name           (All)
        Aliases                      None
        Dynamic?                     false
        
    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer and OutVariable. For more information, see 
        about_CommonParameters (http://go.microsoft.com/fwlink/?LinkID=113216). 
    
    
INPUTS
    None
    
    
OUTPUTS
    System.Object
    
ALIASES
    None
    

REMARKS
    None

利用方法

PowerShell_ise の console画面下 (上部のScripting 画面ではなく、下部の console 画面) で、 psedit ファイル名 とするだけです。 例えば、このようなファイルを出力します。

Get-Help psedit -full | Out-File -FilePath d:\test.log -Encoding utf8

これをPowerShell_ise の Scripting 画面に開くには、 ファイルを指定します。

psedit D:\test.log

すると、このように 現在の Scripting 画面にタブが出来てファイルが開きます。

後は、編集なり保存なりすればいいでしょう。 トテモ便利なので利用してください。 なお、 powershell.exe で psedit コマンドは利用できませんので悪しからず。 powershell_ise で開くだけなら普通に引数に渡せばいいのですが、さて。

powershell_ise D:\test.log