Condividi tramite


Push-Location

Aggiunge il percorso corrente all'inizio di uno stack di percorsi.

Sintassi

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

Descrizione

Il Push-Location cmdlet aggiunge ("push") la posizione corrente in uno stack di posizioni. Se si specifica un percorso, Push-Location esegue il push della posizione corrente in uno stack di posizioni e quindi la posizione corrente viene modificata nella posizione specificata dal percorso. È possibile usare il Pop-Location cmdlet per ottenere posizioni dallo stack di posizioni.

Per impostazione predefinita, il Push-Location cmdlet inserisce il percorso corrente nello stack di percorsi corrente, ma è possibile usare il parametro StackName per specificare uno stack di percorsi alternativo. Se lo stack non esiste, Push-Location lo crea.

Per altre informazioni sugli stack di posizioni, vedere le note.

Esempio

Esempio 1

In questo esempio viene eseguito il push della posizione corrente nello stack di percorsi predefinito e quindi la posizione viene modificata in C:\Windows.

PS C:\> Push-Location C:\Windows

Esempio 2

In questo esempio viene eseguito il push della posizione corrente nello stack RegFunction e la posizione corrente viene modificata nel HKLM:\Software\Policies percorso.

PS C:\> Push-Location HKLM:\Software\Policies -StackName RegFunction

È possibile usare i cmdlet Location in qualsiasi unità di PowerShell (PSDrive).

Esempio 3

Questo comando effettua il push del percorso corrente nello stack predefinito. Non modifica il percorso.

PS C:\> Push-Location

Esempio 4: Creare e usare uno stack denominato

Questi comandi illustrano come creare e usare uno stack di percorsi con nome.

PS C:\> Push-Location ~ -StackName Stack2
PS C:\Users\User01> Pop-Location -StackName Stack2
PS C:\>

Il primo comando inserisce il percorso corrente in un nuovo stack denominato Stack2 e quindi modifica il percorso corrente nella home directory, rappresentato nel comando dal simbolo tilde (~), che quando usato in unità del provider FileSystem equivale a $HOME.

Se Stack2 non esiste già nella sessione, Push-Location lo crea. Il secondo comando usa il Pop-Location cmdlet per visualizzare il percorso originale (C:\) dallo stack Stack2. Senza il parametro StackName , Pop-Location viene visualizzata la posizione dallo stack predefinito senza nome.

Per altre informazioni sugli stack di posizioni, vedere le note.

Parametri

-LiteralPath

Specifica il percorso della nuova posizione. A differenza del parametro Path , 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:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

-PassThru

Passa un oggetto che rappresenta il percorso alla pipeline. 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

Passa alla posizione specificata da questo percorso dopo aver aggiunto (effettuato il push) il percorso corrente all'inizio dello stack. Immettere un percorso di un qualsiasi provider che supporta questo cmdlet. I caratteri jolly sono consentiti. Il nome del parametro è facoltativo.

Tipo:String
Posizione:1
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:True

-StackName

Specifica lo stack di percorsi a cui viene aggiunto il percorso corrente. Immettere un nome per lo stack di percorsi. Se lo stack non esiste, Push-Location lo crea.

Senza questo parametro, Push-Location aggiunge la posizione allo stack di posizioni corrente. Per impostazione predefinita, lo stack di percorsi corrente è lo stack di percorsi predefinito senza nome creato da PowerShell. Per creare uno stack di percorsi nello stack di percorsi corrente, usare il parametro StackName del Set-Location cmdlet . Per altre informazioni sugli stack di posizioni, vedere le note.

Nota

Push-Location non può aggiungere una posizione allo stack predefinito senza nome, a meno che non sia lo stack di percorsi corrente.

Tipo:String
Posizione:Named
Valore predefinito:Default stack
Necessario:False
Accettare l'input della pipeline:True
Accettare caratteri jolly:False

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 , questo cmdlet restituisce un oggetto PathInfo che rappresenta il percorso corrente dopo l'operazione del cmdlet.

Note

PowerShell include gli alias seguenti per Push-Location:

  • Tutte le piattaforme:
    • pushd

PowerShell supporta più spazi di esecuzione per processo. Ogni spazio di esecuzione ha la propria directory corrente. Non è uguale [System.Environment]::CurrentDirectorya . 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.

Uno stack è un elenco first-out ultimo in cui è accessibile solo l'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 ed è 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 cmdlet location di PowerShell, 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 del Get-Location cmdlet .

  • Per creare un nuovo stack di percorsi, usare il parametro StackName del Push-Location cmdlet . Se si specifica uno stack che non esiste, Push-Location crea lo stack.

  • Per creare uno stack di percorsi nello stack di percorsi corrente, usare il parametro StackName del Set-Location cmdlet .

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 ("").

È anche possibile fare riferimento al Push-Location relativo alias predefinito, pushd. Per altre informazioni, vedere about_Aliases.

Il Push-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.