Set-Location
Imposta il percorso di lavoro corrente su un percorso specificato.
Sintassi
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Set-Location
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Descrizione
Il Set-Location
cmdlet imposta la posizione di lavoro su una posizione specificata. Tale percorso può essere una directory, una sottodirectory, un percorso del Registro di sistema o qualsiasi percorso del provider.
PowerShell 6.2 ha aggiunto il supporto per -
e +
come valori per il parametro Path . PowerShell gestisce una cronologia degli ultimi 20 percorsi a cui è possibile accedere con -
e +
. Questo elenco è indipendente dallo stack di percorsi a cui si accede usando il parametro StackName .
Esempio
Esempio 1: Impostare la posizione corrente
PS C:\> Set-Location -Path "HKLM:\"
PS HKLM:\>
Questo comando imposta la posizione corrente sulla radice dell'unità HKLM:
.
Esempio 2: Impostare la posizione corrente e visualizzare tale posizione
PS C:\> Set-Location -Path "Env:\" -PassThru
Path
----
Env:\
PS Env:\>
Questo comando imposta la posizione corrente sulla radice dell'unità Env:
. Usa il parametro PassThru per indirizzare PowerShell a restituire un oggetto PathInfo che rappresenta la Env:\
posizione.
Esempio 3: Impostare la posizione sul percorso corrente nell'unità C:
PS C:\Windows\> Set-Location HKLM:\
PS HKLM:\> Set-Location C:
PS C:\Windows\>
Il primo comando imposta il percorso sulla radice dell'unità HKLM:
nel provider del Registro di sistema.
Il secondo comando imposta il percorso sul percorso corrente dell'unità C:
nel provider FileSystem.
Quando il nome dell'unità viene specificato nel modulo <DriveName>:
(senza barra rovesciata), il cmdlet imposta la posizione sul percorso corrente in PSDrive.
Per ottenere il percorso corrente nel comando PSDrive use Get-Location -PSDrive <DriveName>
.
Esempio 4: Impostare la posizione corrente su uno stack denominato
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:\
Il primo comando aggiunge la posizione corrente allo stack Percorsi. Il secondo comando rende lo stack di percorsi percorsi corrente. Il terzo comando visualizza le posizioni nello stack di posizioni corrente.
I *-Location
cmdlet usano lo stack di percorsi corrente, a meno che non venga specificato uno stack di percorsi diverso nel comando . Per informazioni sugli stack di posizioni, vedere le note.
Esempio 5: Esplorare la cronologia delle posizioni usando '+' o '-'
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'uso dell'alias cd -
o cd +
è un modo semplice per spostarsi nella cronologia delle posizioni nel terminale. Per altre informazioni sull'esplorazione con -
/+
, vedere il parametro Path.
Parametri
-LiteralPath
Specifica un percorso della posizione. Il valore del parametro LiteralPath viene usato esattamente come viene tipizzato. Nessun carattere viene interpretato come carattere jolly. Se il percorso include caratteri di escape, racchiuderlo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Tipo: | String |
Alias: | PSPath, LP |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | True |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
-PassThru
Restituisce un oggetto PathInfo che rappresenta la posizione. Per impostazione predefinita, il cmdlet non genera alcun output.
Tipo: | SwitchParameter |
Posizione: | Named |
Valore predefinito: | False |
Necessario: | False |
Accettare l'input della pipeline: | False |
Accettare caratteri jolly: | False |
-Path
Specificare il percorso di una nuova posizione di lavoro. Se non viene specificato alcun percorso, Set-Location
l'impostazione predefinita è la home directory dell'utente corrente. Quando si usano caratteri jolly, il cmdlet sceglie il contenitore (directory, chiave del Registro di sistema, archivio certificati) che corrisponde al modello con caratteri jolly. Se il criterio con caratteri jolly corrisponde a più contenitori, il cmdlet restituisce un errore.
PowerShell mantiene una cronologia degli ultimi 20 percorsi impostati. Se il valore del parametro Path è il -
carattere, la nuova posizione di lavoro sarà la posizione di lavoro precedente nella cronologia (se esistente). Analogamente, se il valore è il +
carattere, la nuova posizione di lavoro sarà la posizione di lavoro successiva nella cronologia (se esistente). È simile all'uso Pop-Location
e Push-Location
, ad eccezione del fatto che la cronologia è un elenco, non uno stack, e viene monitorato in modo implicito, non controllato manualmente. Non è possibile visualizzare l'elenco della cronologia.
Tipo: | String |
Posizione: | 0 |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | True |
-StackName
Specifica un nome dello stack di percorsi esistente che questo cmdlet rende lo stack di percorsi corrente. Immettere un nome per lo stack di percorsi. Per indicare lo stack di percorsi predefinito senza nome, digitare $null
o una stringa vuota (""
).
L'uso di questo parametro non modifica la posizione corrente. Modifica solo lo stack usato dai *-Location
cmdlet. I *-Location
cmdlet agiscono sullo stack corrente a meno che non si usi il parametro StackName per specificare uno stack diverso. Per altre informazioni sugli stack di posizioni, vedere le note.
Tipo: | String |
Posizione: | Named |
Valore predefinito: | None |
Necessario: | False |
Accettare l'input della pipeline: | True |
Accettare caratteri jolly: | False |
Input
È possibile inviare tramite pipe una stringa contenente un percorso, ma non un percorso letterale, a questo cmdlet.
Output
None
Per impostazione predefinita, questo cmdlet non restituisce alcun output.
Quando si usa il parametro PassThru con Path o LiteralPath, questo cmdlet restituisce un oggetto PathInfo che rappresenta la nuova posizione.
Quando si usa il parametro PassThru con StackName, questo cmdlet restituisce un oggetto PathInfoStack che rappresenta il nuovo contesto dello stack.
Note
PowerShell include gli alias seguenti per Set-Location
:
- Tutte le piattaforme:
cd
chdir
sl
PowerShell supporta più spazi di esecuzione per processo. Ogni spazio di esecuzione ha la propria directory corrente.
Non è uguale [System.Environment]::CurrentDirectory
a . Questo comportamento può essere un problema quando si chiamano le API .NET o si eseguono applicazioni native senza fornire percorsi di directory espliciti.
Anche se i cmdlet location hanno impostato la directory corrente a livello di processo, non è possibile dipendere da esso perché un altro spazio di esecuzione potrebbe modificarlo in qualsiasi momento. È consigliabile usare i cmdlet location per eseguire operazioni basate sul percorso usando la directory di lavoro corrente specifica dello spazio di esecuzione corrente.
Il Set-Location
cmdlet è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PSProvider
. Per altre informazioni, vedere about_Providers.
Uno stack è un elenco first-out ultimo in cui è possibile accedere solo all'elemento aggiunto più di recente. È possibile aggiungere elementi a uno stack nell'ordine in cui vengono usati e quindi recuperarli per l'uso in ordine inverso. PowerShell consente di archiviare i percorsi del provider negli stack di posizioni. PowerShell crea uno stack di percorsi predefinito senza nome. È possibile creare più stack di percorsi denominati. Se non si specifica un nome dello stack, PowerShell usa lo stack di percorsi corrente. Per impostazione predefinita, il percorso predefinito senza nome è lo stack di percorsi corrente, ma è possibile usare il Set-Location
cmdlet per modificare lo stack di percorsi corrente.
Per gestire gli stack di percorsi, usare i *-Location
cmdlet, come indicato di seguito:
Per aggiungere una posizione a uno stack di percorsi, usare il
Push-Location
cmdlet .Per ottenere una posizione da uno stack di posizioni, usare il
Pop-Location
cmdlet .Per visualizzare i percorsi nello stack di percorsi corrente, usare il parametro Stack del
Get-Location
cmdlet . Per visualizzare i percorsi in uno stack di percorsi denominato, usare il parametro StackName diGet-Location
.Per creare un nuovo stack di percorsi, usare il parametro StackName di
Push-Location
. Se si specifica uno stack che non esiste,Push-Location
crea lo stack.Per creare uno stack di posizioni nello stack di percorsi corrente, usare il parametro StackName di
Set-Location
.
Lo stack di percorsi predefinito senza nome è pienamente accessibile solo quando è lo stack di percorsi corrente.
Se si crea uno stack di percorsi denominato nello stack di percorsi corrente, non è più possibile usare i Push-Location
cmdlet o Pop-Location
per aggiungere o ottenere elementi dallo stack predefinito oppure usare il Get-Location
cmdlet per visualizzare i percorsi nello stack senza nome. Per rendere lo stack senza nome lo stack corrente, usare il parametro StackName del Set-Location
cmdlet con un valore di $null
o una stringa vuota (""
).