Set-Location

Définit l'emplacement de travail actif sur un emplacement spécifié.

Syntax

Set-Location
   [[-Path] <String>]
   [-PassThru]
   [<CommonParameters>]
Set-Location
   -LiteralPath <String>
   [-PassThru]
   [<CommonParameters>]
Set-Location
   [-PassThru]
   [-StackName <String>]
   [<CommonParameters>]

Description

L’applet Set-Location de commande définit l’emplacement de travail à un emplacement spécifié. Il peut s’agir d’un répertoire, d’un sous-répertoire, d’un emplacement de Registre ou d’un chemin d’accès de fournisseur.

PowerShell 6.2 a ajouté la prise en charge de - et + en tant que valeurs pour le paramètre Path . PowerShell conserve un historique des 20 derniers emplacements accessibles avec - et +. Cette liste est indépendante de la pile d’emplacements accessible à l’aide du paramètre StackName .

Exemples

Exemple 1 : Définir l’emplacement actuel

PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>

Cette commande définit l’emplacement actuel à la racine du HKLM: lecteur.

Exemple 2 : Définir l’emplacement actuel et afficher cet emplacement

PS C:\> Set-Location -Path "Env:\" -PassThru

Path
----
Env:\

PS Env:\>

Cette commande définit l’emplacement actuel à la racine du Env: lecteur. Il utilise le paramètre PassThru pour indiquer à PowerShell de retourner un objet PathInfo qui représente l’emplacement Env:\ .

Exemple 3 : Définir l’emplacement actuel dans le lecteur C :

PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>

La première commande définit l’emplacement à la racine du HKLM: lecteur dans le fournisseur de Registre. La deuxième commande définit l’emplacement actuel du C: lecteur dans le fournisseur FileSystem. Lorsque le nom du lecteur est spécifié dans le formulaire <DriveName>: (sans barre oblique inverse), l’applet de commande définit l’emplacement actuel dans psDrive. Pour obtenir l’emplacement actuel dans psDrive, utilisez Get-Location -PSDrive <DriveName> la commande .

Exemple 4 : Définir l’emplacement actuel sur une pile nommée

PS C:\> Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
PS C:\Program Files\PowerShell\> Set-Location -StackName "Paths"
PS C:\Program Files\PowerShell\> Get-Location -Stack

Path
----
C:\

La première commande ajoute l’emplacement actuel à la pile Chemins d’accès. La deuxième commande fait de la pile d’emplacement Chemins d’accès la pile d’emplacements actuelle. La troisième commande affiche les emplacements dans la pile d’emplacements actuelle.

Les *-Location applets de commande utilisent la pile d’emplacements actuelle, sauf si une autre pile d’emplacements est spécifiée dans la commande. Pour plus d’informations sur les piles d’emplacements, consultez les Notes.

Exemple 5 : Parcourir l’historique des emplacements à l’aide de « + » ou « - »

PS C:\> Set-Location -Path $env:SystemRoot
PS C:\Windows> Set-Location -Path Cert:\
PS Cert:\> Set-Location -Path HKLM:\
PS HKLM:\>

# Navigate back through the history using "-"
PS HKLM:\> Set-Location -Path -
PS Cert:\> Set-Location -Path -
PS C:\Windows>

# Navigate using the Set-Location alias "cd" and the implicit positional Path parameter
PS C:\Windows> cd -
PS C:\> cd +
PS C:\Windows> cd +
PS Cert:\>

L’utilisation de l’alias cd - ou cd + est un moyen simple de naviguer dans l’historique de votre emplacement dans votre terminal. Pour plus d’informations sur la navigation avec -/+, consultez le paramètre Path .

Paramètres

-LiteralPath

Spécifie un chemin d’accès de l’emplacement. La valeur du paramètre LiteralPath est utilisée exactement telle qu’elle est tapée. Aucun caractère n'est interprété en tant que caractère générique. Si le chemin d’accès inclut des caractères d’échappement, mettez-le entre des guillemets simples. Les guillemets simples indiquent à PowerShell de ne pas interpréter de caractères comme des séquences d’échappement.

Type:String
Aliases:PSPath, LP
Position:Named
Default value:None
Required:True
Accept pipeline input:True
Accept wildcard characters:False

-PassThru

Renvoie un objet PathInfo qui représente l’emplacement. Par défaut, cette applet de commande ne génère aucun résultat.

Type:SwitchParameter
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-Path

Spécifiez le chemin d’accès d’un nouvel emplacement de travail. Si aucun chemin d’accès n’est fourni, Set-Location la valeur par défaut est le répertoire de base de l’utilisateur actuel. Lorsque des caractères génériques sont utilisés, l’applet de commande choisit le conteneur (répertoire, clé de Registre, magasin de certificats) qui correspond au modèle de caractères génériques. Si le modèle générique correspond à plusieurs conteneurs, l’applet de commande retourne une erreur.

PowerShell conserve un historique des 20 derniers emplacements que vous avez définis. Si la valeur du paramètre Path est le - caractère, le nouvel emplacement de travail sera l’emplacement de travail précédent dans l’historique (s’il existe). De même, si la valeur est le + caractère, le nouvel emplacement de travail sera le prochain emplacement de travail dans l’historique (s’il existe). Cela est similaire à l’utilisation Pop-Location de et Push-Location , sauf que l’historique est une liste, et non une pile, et est suivi implicitement et non contrôlé manuellement. Il n’existe aucun moyen d’afficher la liste de l’historique.

Type:String
Position:0
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:True

-StackName

Spécifie un nom de pile d’emplacements existant que cette applet de commande crée la pile d’emplacements actuelle. Entrez un nom de pile d'emplacements. Pour indiquer la pile d’emplacements par défaut sans nom, tapez $null ou une chaîne vide ("").

L’utilisation de ce paramètre ne modifie pas l’emplacement actuel. Elle modifie uniquement la pile utilisée par les applets de *-Location commande. Les *-Location applets de commande agissent sur la pile actuelle, sauf si vous utilisez le paramètre StackName pour spécifier une autre pile. Pour plus d’informations sur les piles d’emplacements, consultez les Notes.

Type:String
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

Entrées

String

Vous pouvez diriger une chaîne qui contient un chemin, mais pas un chemin littéral, vers cette applet de commande.

Sorties

None, System.Management.Automation.PathInfo, System.Management.Automation.PathInfoStack

Cette applet de commande ne génère aucune sortie, sauf si vous spécifiez le paramètre PassThru . L’utilisation de PassThru avec Path ou LiteralPath génère un objet PathInfo qui représente le nouvel emplacement. L’utilisation de PassThru avec StackName génère un objet PathInfoStack représentant le nouveau contexte de pile.

Notes

PowerShell prend en charge plusieurs espaces d’exécution par processus. Chaque espace d’exécution a son propre répertoire actif. Ce n’est pas la même chose que [System.Environment]::CurrentDirectory. Ce comportement peut être un problème lors de l’appel d’API .NET ou de l’exécution d’applications natives sans fournir de chemins d’accès de répertoire explicites.

Même si les applets de commande d’emplacement ont défini le répertoire actif à l’échelle du processus, vous ne pouvez pas en dépendre, car une autre instance d’exécution peut le modifier à tout moment. Vous devez utiliser les applets de commande d’emplacement pour effectuer des opérations basées sur le chemin à l’aide du répertoire de travail actuel spécifique à l’espace d’exécution actuel.

L’applet Set-Location de commande est conçue pour fonctionner avec les données exposées par n’importe quel fournisseur. Pour répertorier les fournisseurs disponibles dans votre session, tapez Get-PSProvider. Pour plus d'informations, consultez about_Providers.

Une pile est une liste de derniers entrants, premier sorti dans laquelle seul l’élément ajouté le plus récent est accessible. Vous ajoutez des éléments à une pile dans l'ordre dans lequel vous les utilisez, puis les récupérez pour une utilisation dans l'ordre inverse. PowerShell vous permet de stocker les emplacements des fournisseurs dans des piles d’emplacements. PowerShell crée une pile d’emplacements par défaut sans nom. Vous pouvez créer plusieurs piles d’emplacements nommés. Si vous ne spécifiez pas de nom de pile, PowerShell utilise la pile d’emplacements actuelle. Par défaut, l’emplacement par défaut sans nom est la pile d’emplacements actuelle, mais vous pouvez utiliser l’applet Set-Location de commande pour modifier la pile d’emplacements actuelle.

Pour gérer les piles d’emplacements, utilisez les *-Location applets de commande, comme suit :

  • Pour ajouter un emplacement à une pile d’emplacements, utilisez l’applet de Push-Location commande .

  • Pour obtenir un emplacement à partir d’une pile d’emplacements, utilisez l’applet de Pop-Location commande .

  • Pour afficher les emplacements dans la pile d’emplacements actuelle, utilisez le paramètre Stack de l’applet Get-Location de commande . Pour afficher les emplacements dans une pile d’emplacements nommée, utilisez le paramètre StackName de Get-Location.

  • Pour créer une pile d’emplacements, utilisez le paramètre StackName de Push-Location. Si vous spécifiez une pile qui n’existe pas, Push-Location crée la pile.

  • Pour faire d’une pile d’emplacements la pile d’emplacements actuelle, utilisez le paramètre StackName de Set-Location.

La pile d'emplacements par défaut sans nom n'est entièrement accessible que s'il s'agit de la pile d'emplacements active. Si vous faites d’une pile d’emplacements nommés la pile d’emplacements actuelle, vous ne pouvez plus utiliser les Push-Location applets de commande ou Pop-Location pour ajouter ou obtenir des éléments de la pile par défaut ou utiliser l’applet Get-Location de commande pour afficher les emplacements dans la pile sans nom. Pour faire de la pile sans nom la pile actuelle, utilisez le paramètre StackName de l’applet Set-Location de commande avec une valeur ou $null une chaîne vide ("").