Set-Location
Imposta la posizione di lavoro corrente su una posizione specificata.
Sintassi
Path (impostazione predefinita).
Set-Location
[[-Path] <String>]
[-PassThru]
[<CommonParameters>]
LiteralPath
Set-Location
-LiteralPath <String>
[-PassThru]
[<CommonParameters>]
Stack
Set-Location
[-PassThru]
[-StackName <String>]
[<CommonParameters>]
Descrizione
Il Set-Location cmdlet imposta il percorso di lavoro su un percorso specificato. 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 visualizzarla
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 posizioni corrente, a meno che non venga specificato uno stack di posizioni 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 utilizzato esattamente come viene digitato. Nessun carattere è interpretato come un carattere jolly. Se il percorso include caratteri di escape, racchiudilo tra virgolette singole. Le virgolette singole indicano a PowerShell di non interpretare alcun carattere come sequenze di escape.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
| Alias: | PSPath, UP |
Set di parametri
LiteralPath
| Posizione: | Named |
| Obbligatorio: | True |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-PassThru
Restituisce un oggetto PathInfo che rappresenta la posizione. Per impostazione predefinita, questo cmdlet non genera alcun output.
Proprietà dei parametri
| Tipo: | SwitchParameter |
| Valore predefinito: | False |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
(All)
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | False |
| Valore dagli argomenti rimanenti: | False |
-Path
Specificare il percorso di una nuova posizione di lavoro. Se non viene specificato alcun percorso, Set-Location il valore predefinito viene utilizzato per 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.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | True |
| DontShow: | False |
Set di parametri
Path
| Posizione: | 0 |
| Obbligatorio: | False |
| Valore dalla pipeline: | True |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
-StackName
Specifica un nome dello stack di percorsi esistente che questo cmdlet rende lo stack di percorsi corrente. Immettere un nome dello 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 utilizzi il parametro StackName per specificare uno stack diverso. Per altre informazioni sugli stack di posizioni, vedere la Notes.
Proprietà dei parametri
| Tipo: | String |
| Valore predefinito: | None |
| Supporta i caratteri jolly: | False |
| DontShow: | False |
Set di parametri
Stack
| Posizione: | Named |
| Obbligatorio: | False |
| Valore dalla pipeline: | False |
| Valore dalla pipeline in base al nome della proprietà: | True |
| Valore dagli argomenti rimanenti: | False |
CommonParameters
Questo cmdlet supporta i parametri comuni: -Debug, -ErrorAction, -ErrorVariable, -InformationAction, -InformationVariable, -OutBuffer, -OutVariable, -PipelineVariable, -ProgressAction, -Verbose, -WarningAction e -WarningVariable. Per altre informazioni, vedi about_CommonParameters.
Input
String
È 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.
PathInfo
Quando si usa il parametro PassThru con Path o LiteralPath, questo cmdlet restituisce un oggetto PathInfo che rappresenta la nuova posizione.
PathInfoStack
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:
cdchdirsl
PowerShell supporta più spazi di esecuzione per processo. Ogni spazio di esecuzione ha la propria directory attuale.
Non è uguale a [System.Environment]::CurrentDirectory. 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 cmdlet Set-Location è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider disponibili nella sessione, digitare Get-PSProvider. Per altre informazioni, consultare 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 nell'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ù pile di posizioni denominate. 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 cmdlet Set-Location per modificare lo stack di percorsi corrente.
Per gestire gli stack di posizioni, utilizzare i *-Location cmdlet, come indicato di seguito:
Per aggiungere una posizione a uno stack di percorsi, usare il cmdlet
Push-Location.Per ottenere una posizione da uno stack di percorsi, usare il cmdlet
Pop-Location.Per visualizzare i percorsi nello stack di percorsi corrente, usare il parametro Stack del cmdlet
Get-Location. Per visualizzare le posizioni in uno stack di posizioni denominate, utilizzare il parametro StackName diGet-Location.Per creare un nuovo stack di posizioni, utilizzare il parametro StackName di
Push-Location. Se si specifica uno stack che non esiste,Push-Locationcrea lo stack.Per impostare una pila di posizioni come quella corrente, utilizzare il parametro StackName di
Set-Location.
Lo stack di percorsi predefinito senza nome è completamente accessibile solo quando si tratta dello stack di percorsi corrente.
Se si crea uno stack di percorsi denominato nello stack di percorsi corrente, non è più possibile usare i cmdlet Push-Location o Pop-Location per aggiungere o ottenere elementi dallo stack predefinito oppure usare il cmdlet Get-Location per visualizzare i percorsi nello stack senza nome. Per rendere lo stack senza nome lo stack corrente, usare il parametro StackName del cmdlet Set-Location con un valore di $null o una stringa vuota ("").