Partager via


Set-Location

Définit l’emplacement de travail actuel à un emplacement spécifié.

Syntaxe

Path (Par défaut)

Set-Location
    [[-Path] <String>]
    [-PassThru]
    [-UseTransaction]
    [<CommonParameters>]

LiteralPath

Set-Location
    -LiteralPath <String>
    [-PassThru]
    [-UseTransaction]
    [<CommonParameters>]

Stack

Set-Location
    [-PassThru]
    [-StackName <String>]
    [-UseTransaction]
    [<CommonParameters>]

Description

L’applet de commande Set-Location 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.

Vous pouvez également utiliser le paramètre StackName pour créer une pile d’emplacements nommées dans la pile d’emplacements actuelle. Pour plus d’informations sur les piles d’emplacements, consultez les notes.

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 lecteur HKLM:.

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 lecteur Env:. Il utilise le paramètre PassThru pour diriger PowerShell pour renvoyer un objet PathInfo qui représente l’emplacement Env:\.

Exemple 3 : Définir l’emplacement sur 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 lecteur HKLM: dans le fournisseur de Registre. La deuxième commande définit l’emplacement actuel du disque C: dans le fournisseur FileSystem. Lorsque le nom du lecteur est spécifié sous la forme <DriveName>: (sans barre oblique inverse), le cmdlet définit l’emplacement à l’emplacement actuel dans le PSDrive. Pour obtenir l’emplacement actuel dans PSDrive, utilisez Get-Location -PSDrive <DriveName> 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 des chemins la pile d’emplacement actuelle. La troisième commande affiche les emplacements dans la pile d’emplacements actuelle.

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

Paramètres

-LiteralPath

Spécifie un chemin de l’emplacement. La valeur du paramètre LiteralPath est utilisée exactement comme il est typé. 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 séquences d’échappement.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False
Alias:PSPath

Jeux de paramètres

LiteralPath
Position:Named
Obligatoire:True
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-PassThru

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

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants: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 prend par défaut le répertoire personnel 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 générique. Si le motif générique correspond à plusieurs conteneurs, l’applet de commande retourne une erreur.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:True
DontShow:False

Jeux de paramètres

Path
Position:0
Obligatoire:False
Valeur du pipeline:True
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-StackName

Spécifie un nom de pile d’emplacement existant que ce cmdlet définit comme pile d’emplacement 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. Il ne modifie que la pile utilisée par les cmdlets *-Location. Les applets de commande *-Location 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’emplacement, veuillez consulter la section Notes.

Propriétés du paramètre

Type:String
Valeur par défaut:None
Prend en charge les caractères génériques:False
DontShow:False

Jeux de paramètres

Stack
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:True
Valeur des arguments restants:False

-UseTransaction

Inclut la commande dans la transaction active. Ce paramètre est valide uniquement lorsqu’une transaction est en cours. Pour plus d’informations, consultez about_Transactions.

Propriétés du paramètre

Type:SwitchParameter
Valeur par défaut:False
Prend en charge les caractères génériques:False
DontShow:False
Alias:usetx

Jeux de paramètres

(All)
Position:Named
Obligatoire:False
Valeur du pipeline:False
Valeur du pipeline par nom de propriété:False
Valeur des arguments restants:False

CommonParameters

Cette applet de commande prend en charge les paramètres courants : -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction et -WarningVariable. Pour plus d’informations, consultez about_CommonParameters.

Entrées

String

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

Sorties

None

Par défaut, cette applet de commande ne retourne aucune sortie.

PathInfo

Lorsque vous utilisez le paramètre PassThru avec Path ou LiteralPath, cette applet de commande renvoie un objet PathInfo représentant le nouvel emplacement.

PathInfoStack

Lorsque vous utilisez le paramètre PassThru avec StackName, ce cmdlet renvoie un objet PathInfoStack représentant le nouveau contexte de pile.

Notes

Windows PowerShell inclut les alias suivants pour Set-Location:

  • cd
  • chdir
  • sl

PowerShell prend en charge plusieurs runspaces par processus. Chaque instance d’exécution a son propre répertoire actif . Ce n’est pas le même que [System.Environment]::CurrentDirectory. Ce comportement peut être un problème lors de l’appel d’API .NET ou d’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 un autre espace 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’instance d’exécution actuelle.

L’applet de commande Set-Location 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, voir about_Providers.

Une pile est une liste dernier entré, premier sorti dans laquelle seul l’élément ajouté le plus récemment est accessible. Vous ajoutez des éléments à une pile dans l’ordre dans lequel vous les utilisez, puis récupérez-les pour une utilisation dans l’ordre inverse. PowerShell vous permet de stocker des emplacements de fournisseur dans les piles d’emplacements. PowerShell crée une pile d’emplacements par défaut sans nom. Vous pouvez créer plusieurs piles d’emplacement nommées. 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 de commande Set-Location pour modifier la pile d’emplacements actuelle.

Pour gérer les piles d’emplacement, utilisez les cmdlets *-Location, comme suit:

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

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

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

  • Pour créer une nouvelle 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 définir une pile d’emplacement comme pile d’emplacement actuelle, utilisez le paramètre StackName de Set-Location.

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