From: Ardis Lu Date: Thu, 26 Oct 2023 03:53:06 +0000 (-0700) Subject: Add Open-ParentFolder X-Git-Url: https://git.ardis.lu/?a=commitdiff_plain;h=3c18630f56ff7c89220f20e48e9fc0400f1b9788;p=ArdisUtilities Add Open-ParentFolder --- diff --git a/ArdisUtilities/ArdisUtilities.psd1 b/ArdisUtilities/ArdisUtilities.psd1 index 6696a45..3ec3adf 100644 --- a/ArdisUtilities/ArdisUtilities.psd1 +++ b/ArdisUtilities/ArdisUtilities.psd1 @@ -4,7 +4,7 @@ GUID = '57a6bea3-0ea5-44b3-95d2-71d122772f1c' Author = 'Ardis Lu' Description = 'My personal utility functions.' - FunctionsToExport = @('Invoke-RandomFile', 'ConvertTo-Base64String', 'Get-StringHash', 'Get-SizeDurationRatio', 'Get-ExtendedFileProperty', 'Get-DocumentationIP', 'Get-DocumentationPhoneNumber', 'Test-TcpPort', 'Get-HelpAsMarkdown') + FunctionsToExport = @('Invoke-RandomFile', 'ConvertTo-Base64String', 'Get-StringHash', 'Get-SizeDurationRatio', 'Get-ExtendedFileProperty', 'Get-DocumentationIP', 'Get-DocumentationPhoneNumber', 'Test-TcpPort', 'Get-HelpAsMarkdown', 'Open-ParentFolder') CmdletsToExport = @() VariablesToExport = @() AliasesToExport = @() diff --git a/ArdisUtilities/ArdisUtilities.psm1 b/ArdisUtilities/ArdisUtilities.psm1 index 31bd77e..c9ec96a 100644 --- a/ArdisUtilities/ArdisUtilities.psm1 +++ b/ArdisUtilities/ArdisUtilities.psm1 @@ -807,3 +807,36 @@ function Get-HelpAsMarkdown { $output -Join "`r`n" } } + +function Open-ParentFolder { + <# + .SYNOPSIS + Opens File Explorer (explorer.exe) in the folder that contains a command. + + .DESCRIPTION + Uses Get-Command to determine the path to an executable, then passes the path to Split-Path to get the + parent folder. Finally, opens the parent folder by passing the path as an argument to explorer.exe. + + .PARAMETER Command + The name of the executable to open the File Explorer to. + + .EXAMPLE + PS> Open-ParentFolder curl + + Opens File Explorer to C:\Windows\system32\. + #> + + [CmdletBinding()] + param( + [Parameter(Mandatory, ValueFromPipeline)] + [String]$Command + ) + + begin { + $ErrorActionPreference = 'Stop' + } + + process { + explorer.exe ((Get-Command $Command).Source | Split-Path -Parent) + } +}