PowerShellのプロファイルに色々書いた件
PowerShellのプロファイルに色々書いてみました。
プロファイルの編集方法は下記のページを参照してください。
tech.guitarrapc.com
・プロファイルを編集する自作関数
Function edit_profile{ <# .SYNOPSIS PowerShell プロファイルを編集する .DESCRIPTION メリット:VS Codeの実行パスと$profile変数を直接叩く必要がなくなる .EXAMPLE PS C:\Sample> edit_profile() #> Start-Process "C:\Users\[UserName]\AppData\Local\Programs\Microsoft VS Code\Code.exe" $profile }
・管理者権限で実行しなおす自作関数
Function elev_admin($scriptpath){ <# .SYNOPSIS 管理者権限で実行しなおす .PARAMETER $scriptpath スクリプト本体のパス。$PSCommandPath で取得&渡し可能。 #> if (!([Security.Principal.WindowsPrincipal][Security.Principal.WindowsIdentity]::GetCurrent()).IsInRole("Administrators")){ Start-Process powershell.exe "-File `"$scriptpath`"" -Verb RunAs exit } }
・「ファイルを開く」ダイアログを表示する自作関数
Function OpenFile(){ <#.SYNOPSIS ファイルを開く ダイアログを表示する .OUTPUTS 選択したファイルのファイル名+フルパス 選択しなかった場合は文字列"Error" #> $current_directory = Get-Location # アセンブリのロード Add-Type -AssemblyName System.Windows.Forms # ダイアログインスタンス生成 $dialog = New-Object Windows.Forms.OpenFileDialog # タイトル ファイルのフィルタ 初期ディレクトリ $dialog.Title = "ファイルを選択" $dialog.Filter = "すべてのファイル(*.*)|*.*" $dialog.InitialDirectory = "$current_directory" # ダイアログ表示 $result = $dialog.ShowDialog() # [開く]ボタン押下ならファイル名のフルパスを返す if($result -eq "OK"){ Return $dialog.FileName } else { Return "Error" break } }
・XMLを読み込む自作関数(OpenFile関数と併用する前提)
Function Get-XML($filepath){ <# .SYNOPSIS XMLファイルを読み込む #> $XML = [XML](Get-Content $filepath) Write-Host "型の確認" $XML.GetType() Write-Host "" }
・エクセルファイルをPDFに変換する
Function xls_to_pdf($filepath){ <# .SYNOPSIS エクセルファイルをPDF化する .PARAMETER filepath エクセルファイルのフルパス #> try{ $excel = New-Object -ComObject Excel.Application $excel.Visible = $false $excel.DisplayAlerts = $false $wb = $excel.Workbooks.Open($filepath) $pdfpath = (Get-Item $filepath).BaseName $pdfpath += ".pdf" $wb.ExportAsFixedFormat(0, $pdfpath) $wb.Close() $excel.Quit() } finally{ $sheet, $wb, $excel | ForEach-Object { if($_ -ne $null){ [void][System.Runtime.Interopservices.Marshal]::ReleaseComObject($_) } } } }
上記全てをプロファイルに記述すれば、いつでも自作関数として呼び出せます。
個人的にはOpenFile等は利便性も使用頻度も高いので特にオススメです。