Tag Archives: Resolve

Split-Path

NAME
    Split-Path

SYNOPSIS
    Returns the specified part of a path.

SYNTAX
    Split-Path [-IsAbsolute] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

    Split-Path [-Leaf] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

    Split-Path [-NoQualifier] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

    Split-Path [-Parent] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

    Split-Path [[-Qualifier]] [-Path] <string[]> [-Credential <PSCredential>] [-LiteralPath <string[]>] [-Resolve] [-UseTransaction] [<CommonParameters>]

DESCRIPTION
    The Split-Path cmdlet returns only the specified part of a path, such as the parent directory, a child directory, or a file name. It also can display the items that are referenced by the split path and tell whether the path is relative or absolute.

    You can use this cmdlet to display or submit only a selected part of a path.

PARAMETERS
    -Credential <PSCredential>
        Specifies a user account that has permission to perform this action. The default is the current user.

        Type a user name, such as “User01” or “Domain01\User01”. Or, enter a PSCredential object, such as one generated by the Get-Credential cmdlet. If you type a user name, you will be prompted for a password.

        This parameter is not supported by any providers installed with Windows PowerShell.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -IsAbsolute [<SwitchParameter>]
        Returns TRUE if the path is absolute and FALSE if it is relative. An absolute path has a length greater than zero and does not use a dot ( . ) to indicate the current path.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     false
        Accept wildcard characters? false

    -Leaf [<SwitchParameter>]
        Returns only the last item or container in the path. For example, in the path “C:\Test\Logs\Pass1.log”, it returns only “Pass1.log”.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -LiteralPath <string[]>
        Specifies the paths to be split. Unlike Path, the value of LiteralPath is used exactly as it is typed. No characters are interpreted as wildcards. If the path includes escape characters, enclose it in single quotation marks. Single quotation marks tell Windows PowerShell not to interpret any characters as escape sequences.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -NoQualifier [<SwitchParameter>]
        Returns the path without the qualifier. For the FileSystem or Registry providers, the qualifier is the drive of the provider path, such as C: or HKCU:. For example, in the path “C:\Test\Logs\Pass1.log”, it returns only “\Test\Logs\Pass1.log”.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -Parent [<SwitchParameter>]
        Returns only the parent containers of the item or of the container specified by the path. For example, in the path “C:\Test\Logs\Pass1.log”, it returns “C:\Test\Logs”. The Parent parameter is the default split location parameter.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -Path <string[]>
        Specifies the paths to be split. Wildcards are permitted. If the path includes spaces, enclose it in quotation marks. You can also pipe a path to Split-Path.

        Required?                    true
        Position?                    1
        Default value
        Accept pipeline input?     true (ByValue, ByPropertyName)
        Accept wildcard characters? false

    -Qualifier [<SwitchParameter>]
        Returns only the qualifier of the specified path. For the FileSystem or Registry providers, the qualifier is the drive of the provider path, such as C: or HKCU:.

        Required?                    false
        Position?                    2
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -Resolve [<SwitchParameter>]
        Displays the items that are referenced by the resulting split path instead of displaying the path elements.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     false
        Accept wildcard characters? false

    -UseTransaction [<SwitchParameter>]
        Includes the command in the active transaction. This parameter is valid only when a transaction is in progress. For more information, see about_transactions.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     false
        Accept wildcard characters? false

    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer and OutVariable. For more information, type,
        “Get-Help about_CommonParameters“.

INPUTS
    System.String
        You can pipe a string that contains a path to Split-Path.

OUTPUTS
    System.String
        The Split-Path cmdlet returns text strings. When you use the Resolve parameter, Split-Path returns a string that describes the location of the items; it does not return objects that represent the items, such as a FileInfo or RegistryKey object.

NOTES

        The split location parameters (Qualifier, Parent, Leaf, and NoQualifier) are exclusive. You can use only one in each command.

        The cmdlets that contain the Path noun (the Path cmdlets) manipulate path names and return the names in a concise format that all Windows PowerShell providers can interpret. They are designed for use in programs and scripts where you want to display all or part of a path name in a particular format. Use them like you would use Dirname, Normpath, Realpath, Join, or other path manipulators.

        You can use the Path cmdlets with several providers, including the FileSystem, Registry, and Certificate providers.

        The Split-Path cmdlet is designed to work with the data exposed by any provider. To list the providers available in your session, type “Get-PSProvider“. For more information, see about_providers.

    ————————– EXAMPLE 1 ————————–

    C:\PS>Split-Path “HKCU:\Software\Microsoft” -qualifier

    HKCU:

    Description
    ———–
    This command returns only the qualifier (the drive) of the path.

    ————————– EXAMPLE 2 ————————–

    C:\PS>Split-Path “C:\Test\Logs\*.log” -leaf -Resolve

    Pass1.log
    Pass2.log
    …

    Description
    ———–
    This command displays the files that are referenced by the split path. Because this path is split to the last item (the “leaf”), only the file names of the paths are displayed.

    The Resolve parameter tells Split-Path to display the items that the split path references, instead of displaying the split path.

    Like all Split-Path commands, this command returns strings. It does not return FileInfo Objects representing the files.

    ————————– EXAMPLE 3 ————————–

    C:\PS>Split-Path “C:\WINDOWS\system32\WindowsPowerShell\V1.0\about_*.txt”

    C:\WINDOWS\system32\WindowsPowerShell\V1.0

    Description
    ———–
    This command returns only the parent containers of the path. Because it does not include any parameters to specify the split, Split-Path uses the split location default, which is Parent.

    ————————– EXAMPLE 4 ————————–

    C:\PS>Split-Path “.\My Pictures\*.jpg” -IsAbsolute

    False

    Description
    ———–
    This command determines whether the path is relative or absolute. In this case, because the path is relative to the current directory, which is represented by a dot (.), it returns FALSE ($false).

    ————————– EXAMPLE 5 ————————–

    C:\PS>Set-Location (Split-Path $profile)

    PS C:\Documents and Settings\juneb\My Documents\WindowsPowerShell>

    Description
    ———–
    This command changes your location to the directory that contains the Windows PowerShell profile.
    The command in parentheses uses the Split-Path cmdlet to return only the parent of the path stored in the built-in $Profile Variable. (The Parent parameter is the default split location parameter, so you can omit it from the command.) The parentheses direct Windows PowerShell to execute the command first. This is a handy way to navigate to a directory with a long path name.

    ————————– EXAMPLE 6 ————————–

    C:\PS>’C:\Documents and Settings\User01\My Documents\My Pictures’ | Split-Path

    C:\Documents and Settings\User01\My Documents

    Description
    ———–
    This command uses a pipeline operator (|) to send a path to the Split-Path cmdlet. The path is enclosed in quotation marks to indicate that it is a single token.

RELATED LINKS
    Online version: http://go.microsoft.com/fwlink/?LinkID=113404
    about_providers
    Test-Path
    Convert-Path
    Resolve-Path
    Join-Path

Join-Path

NAME
    Join-Path

SYNOPSIS
    Combines a path and a child path into a single path. The provider supplies the path delimiters.

SYNTAX
    Join-Path [-Path] <string[]> [-ChildPath] <string> [-Credential <PSCredential>] [-Resolve] [-UseTransaction] [<CommonParameters>]

DESCRIPTION
    The Join-Path cmdlet combines a path and child-Path into a single path. The provider supplies the path delimiters.

PARAMETERS
    -ChildPath <string>
        Specifies the elements to append to the value of Path. Wildcards are permitted. The ChildPath parameter is required, although the parameter name (“ChildPath”) is optional.

        Required?                    true
        Position?                    2
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -Credential <PSCredential>
        Specifies a user account that has permission to perform this action. The default is the current user.

        Type a user name, such as “User01” or “Domain01\User01”. Or, enter a PSCredential object, such as one generated by the Get-Credential cmdlet. If you type a user name, you will be prompted for a password.

        This parameter is not supported by any providers installed with Windows PowerShell.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     true (ByPropertyName)
        Accept wildcard characters? false

    -Path <string[]>
        Specifies the main path (or paths) to which the child-Path is appended. Wildcards are permitted.

        The value of Path determines which provider joins the paths and adds the path delimiters. The Path parameter is required, although the parameter name (“Path”) is optional.

        Required?                    true
        Position?                    1
        Default value
        Accept pipeline input?     true (ByValue, ByPropertyName)
        Accept wildcard characters? false

    -Resolve [<SwitchParameter>]
        Displays the items that are referenced by the joined path.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     false
        Accept wildcard characters? false

    -UseTransaction [<SwitchParameter>]
        Includes the command in the active transaction. This parameter is valid only when a transaction is in progress. For more information, see about_transactions.

        Required?                    false
        Position?                    named
        Default value
        Accept pipeline input?     false
        Accept wildcard characters? false

    <CommonParameters>
        This cmdlet supports the common parameters: Verbose, Debug,
        ErrorAction, ErrorVariable, WarningAction, WarningVariable,
        OutBuffer and OutVariable. For more information, type,
        “Get-Help about_CommonParameters“.

INPUTS
    System.String
        You can pipe a string that contains a path to Join-Path.

OUTPUTS
    System.String
        Join-Path returns a string that contains the resulting path.

NOTES

        The cmdlets that contain the Path noun (the Path cmdlets) manipulate path names and return the names in a concise format that all Windows PowerShell providers can interpret. They are designed for use in programs and scripts where you want to display all or part of a path name in a particular format. Use them like you would use Dirname, Normpath, Realpath, Join, or other path manipulators.

        You can use the path cmdlets with several providers, including the FileSystem, Registry, and Certificate providers.

        The Join-Path cmdlet is designed to work with the data exposed by any provider. To list the providers available in your session, type “Get-PSProvider“. For more information, see about_providers.

    ————————– EXAMPLE 1 ————————–

    C:\PS>Join-Path -Path c:\win* -ChildPath System*

    Description
    ———–
    This command uses Join-Path to combine the “c:\Win*” path with the “System*” child path. The Windows PowerShell file system provider, FileSystem joins the path and adds the “\” delimiter.

    ————————– EXAMPLE 2 ————————–

    C:\PS>Join-Path c:\win* System* -Resolve

    Description
    ———–
    This command displays the files and folders that are referenced by joining the “c:\Win*” path and the “System*” child path. It displays the same files and folders as Get-ChildItem, but it displays the fully qualified path to each item. In this command, the Path and ChildPath optional parameter names are omitted.

    ————————– EXAMPLE 3 ————————–

    C:\PS>PS HKLM:\> Join-Path System *ControlSet* -Resolve

    Description
    ———–
    This command displays the Registry keys in the HKLM\System Registry subkey that include “ControlSet”. This example shows how to use Join-Path with the Windows PowerShell Registry provider.

    ————————– EXAMPLE 4 ————————–

    C:\PS>Join-Path -Path C:, D:, E:, F: -ChildPath New

    Description
    ———–
    This command uses Join-Path to combine multiple path roots with a child path.

    ————————– EXAMPLE 5 ————————–

    C:\PS>Get-PSDrive -psprovider FileSystem | foreach {$_.root} | Join-Path -ChildPath Subdir

    Description
    ———–
    This command combines the roots of each Windows PowerShell file system drive in the console with the Subdir child path.

    The command uses the Get-PSDrive cmdlet to get the Windows PowerShell drives supported by the FileSystem provider. The ForEach statement selects only the Root property of the PSDriveInfo objects and combines it with the specified child path.

    The output shows that the Windows PowerShell drives on the computer included a drive mapped to the C:\Program Files directory.

RELATED LINKS
    Online version: http://go.microsoft.com/fwlink/?LinkID=113347
    about_providers
    Test-Path
    Split-Path
    Resolve-Path
    Convert-Path