Delen via


Set-Location

Hiermee stelt u de huidige werklocatie in op een opgegeven locatie.

Syntaxis

Path (Standaard)

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

LiteralPath

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

Stack

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

Description

De Set-Location-cmdlet stelt de werklocatie in op een opgegeven locatie. Deze locatie kan een map, een submap, een registerlocatie of een providerpad zijn.

PowerShell 6.2 heeft ondersteuning toegevoegd voor - en + als waarden voor de parameter Path. PowerShell onderhoudt een geschiedenis van de laatste 20 locaties die toegankelijk zijn met - en +. Deze lijst is onafhankelijk van de locatiestack die wordt geopend met behulp van de parameter StackName.

Voorbeelden

Voorbeeld 1: De huidige locatie instellen

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

Met deze opdracht wordt de huidige locatie ingesteld op de hoofdmap van het HKLM: station.

Voorbeeld 2: De huidige locatie instellen en die locatie weergeven

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

PS Env:\>

Met deze opdracht wordt de huidige locatie ingesteld op de hoofdmap van het Env: station. Hierbij wordt de parameter PassThru gebruikt om PowerShell te leiden om een PathInfo--object te retourneren dat de Env:\ locatie vertegenwoordigt.

Voorbeeld 3: Locatie instellen op de huidige locatie in het station C:

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

Met de eerste opdracht wordt de locatie ingesteld op de hoofdmap van het HKLM: station in de registerprovider. Met de tweede opdracht wordt de locatie ingesteld op de huidige locatie van het C: station in de bestandssysteemprovider. Wanneer de stationsnaam is opgegeven in het formulier <DriveName>: (zonder backslash), stelt de cmdlet de locatie in op de huidige locatie in de PSDrive. Als u de huidige locatie in de PSDrive wilt ophalen, gebruikt u Get-Location -PSDrive <DriveName> opdracht.

Voorbeeld 4: De huidige locatie instellen op een benoemde stack

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:\

Met de eerste opdracht wordt de huidige locatie toegevoegd aan de padenstack. Met de tweede opdracht wordt de locatie paden gestapeld op de huidige locatiestack. Met de derde opdracht worden de locaties in de huidige locatiestack weergegeven.

De *-Location cmdlets gebruiken de huidige locatiestack, tenzij een andere locatiestack is opgegeven in de opdracht. Zie de Notitiesvoor informatie over locatiestacks.

Voorbeeld 5: Navigeren in locatiegeschiedenis met '+' of '-'

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:\>

Met behulp van de alias is cd - of cd + een eenvoudige manier om door uw locatiegeschiedenis te navigeren terwijl u zich in uw terminal bevindt. Zie de parameter - voor meer informatie over navigeren met /+.

Parameters

-LiteralPath

Hiermee geeft u een pad van de locatie. De waarde van de parameter LiteralPath wordt exact gebruikt zoals deze wordt getypt. Er worden geen tekens geïnterpreteerd als jokertekens. Als het pad escape-tekens bevat, zet het dan tussen enkele aanhalingstekens. Enkele aanhalingstekens zorgen ervoor dat PowerShell geen tekens als escapesequenties interpreteert.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False
Aliassen:PSPath, LP

Parametersets

LiteralPath
Position:Named
Verplicht:True
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-PassThru

Retourneert een PathInfo-object dat de locatie vertegenwoordigt. Deze cmdlet genereert standaard geen uitvoer.

Parametereigenschappen

Type:SwitchParameter
Default value:False
Ondersteunt jokertekens:False
DontShow:False

Parametersets

(All)
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:False
Waarde van resterende argumenten:False

-Path

Geef het pad op van een nieuwe werklocatie. Als er geen pad is opgegeven, wordt Set-Location standaard ingesteld op de basismap van de huidige gebruiker. Wanneer jokertekens worden gebruikt, kiest de cmdlet de container (map, registersleutel, certificaatarchief) die overeenkomt met het jokertekenpatroon. Als het jokertekenpatroon overeenkomt met meer dan één container, retourneert de cmdlet een fout.

PowerShell houdt een geschiedenis bij van de laatste 20 locaties die u hebt ingesteld. Als de parameterwaarde Pad het - teken is, is de nieuwe werklocatie de vorige werklocatie in de geschiedenis (indien aanwezig). Als de waarde ook het + teken is, is de nieuwe werklocatie de volgende werklocatie in de geschiedenis (als deze bestaat). Dit is vergelijkbaar met het gebruik van Pop-Location en Push-Location, behalve dat de geschiedenis een lijst is, geen stack en impliciet wordt bijgehouden, niet handmatig wordt beheerd. Er is geen manier om de geschiedenislijst weer te geven.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:True
DontShow:False

Parametersets

Path
Position:0
Verplicht:False
Waarde uit pijplijn:True
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

-StackName

Hiermee geeft u een bestaande locatiestacknaam op die door deze cmdlet de huidige locatiestack wordt gemaakt. Voer de naam van een locatiestack in. Als u de niet-benoemde standaardlocatiestack wilt aangeven, typt u $null of een lege tekenreeks ("").

Als u deze parameter gebruikt, wordt de huidige locatie niet gewijzigd. Alleen de stack die door de *-Location cmdlets wordt gebruikt, wordt gewijzigd. De *-Location cmdlets handelen op de huidige stack, tenzij u de parameter StackName gebruikt om een andere stack op te geven. Zie de Notitiesvoor meer informatie over locatiestacks.

Parametereigenschappen

Type:String
Default value:None
Ondersteunt jokertekens:False
DontShow:False

Parametersets

Stack
Position:Named
Verplicht:False
Waarde uit pijplijn:False
Waarde uit pijplijn op eigenschapsnaam:True
Waarde van resterende argumenten:False

CommonParameters

Deze cmdlet ondersteunt de algemene parameters: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction en -WarningVariable. Zie about_CommonParametersvoor meer informatie.

Invoerwaarden

String

U kunt een tekenreeks die een pad bevat naar deze cmdlet pijpen, maar niet een letterlijk pad.

Uitvoerwaarden

None

Deze cmdlet retourneert standaard geen uitvoer.

PathInfo

Wanneer u de parameter PassThru gebruikt met Path of LiteralPath, retourneert deze cmdlet een PathInfo--object dat de nieuwe locatie vertegenwoordigt.

PathInfoStack

Wanneer u de parameter PassThru gebruikt met StackName-, retourneert deze cmdlet een PathInfoStack object dat de nieuwe stackcontext vertegenwoordigt.

Notities

PowerShell bevat de volgende aliassen voor Set-Location:

  • Alle platforms:
    • cd
    • chdir
    • sl

PowerShell ondersteunt meerdere runspaces per proces. Elke runspace heeft een eigen werkmap. Dit is niet hetzelfde als [System.Environment]::CurrentDirectory. Dit gedrag kan een probleem zijn bij het aanroepen van .NET-API's of het uitvoeren van systeemeigen toepassingen zonder expliciete directorypaden op te geven.

Zelfs als de locatie-cmdlets de huidige map voor het hele proces hebben ingesteld, kunt u er niet van afhankelijk zijn omdat een andere runspace deze op elk gewenst moment kan wijzigen. Gebruik de locatie-cmdlets om padgebaseerde bewerkingen uit te voeren met behulp van de huidige werkmap die specifiek is voor de huidige runspace.

De cmdlet Set-Location is ontworpen om te werken met de gegevens die door elke provider worden weergegeven. Als u de providers wilt weergeven die beschikbaar zijn in uw sessie, typt u Get-PSProvider. Zie about_Providersvoor meer informatie.

Een stack is een lijst waarin alleen het laatst toegevoegde item kan worden geopend. U voegt items toe aan een stapel in de volgorde waarin u ze gebruikt en haalt ze vervolgens op voor gebruik in de omgekeerde volgorde. Met PowerShell kunt u providerlocaties opslaan in locatiestacks. PowerShell maakt een niet-benoemde standaardlocatiestack. U kunt meerdere benoemde locatiestacks maken. Als u geen stacknaam opgeeft, gebruikt PowerShell de huidige locatiestack. Standaard is de niet-benoemde standaardlocatie de huidige locatiestack, maar u kunt de Set-Location cmdlet gebruiken om de huidige locatiestack te wijzigen.

Als u locatiestacks wilt beheren, gebruikt u de *-Location cmdlets als volgt:

  • Gebruik de cmdlet Push-Location om een locatie toe te voegen aan een locatiestack.

  • Gebruik de cmdlet Pop-Location om een locatie op te halen uit een locatiestack.

  • Als u de locaties in de huidige locatiestack wilt weergeven, gebruikt u de parameter Stack van de Get-Location-cmdlet. Als u de locaties in een benoemde locatiestack wilt weergeven, gebruikt u de parameter StackName van Get-Location.

  • Als u een nieuwe locatiestack wilt maken, gebruikt u de parameter StackName van Push-Location. Als u een stack opgeeft die niet bestaat, Push-Location de stack maakt.

  • Als u een locatiestack de huidige locatiestack wilt maken, gebruikt u de parameter StackName van Set-Location.

De niet-benoemde standaardlocatiestack is alleen volledig toegankelijk als het de huidige locatiestack is. Als u een benoemde locatiestack maakt, kunt u de huidige locatiestack niet meer gebruiken om de Push-Location of Pop-Location cmdlets toe te voegen of op te halen uit de standaardstack of de Get-Location-cmdlet gebruiken om de locaties in de niet-benoemde stack weer te geven. Als u de niet-benoemde stack de huidige stack wilt maken, gebruikt u de parameter StackName van de Set-Location-cmdlet met een waarde van $null of een lege tekenreeks ("").