Condividi tramite


Get-Location

Ottiene informazioni sul percorso di lavoro corrente o su uno stack di percorsi.

Sintassi

Get-Location
   [-PSProvider <String[]>]
   [-PSDrive <String[]>]
   [<CommonParameters>]
Get-Location
   [-Stack]
   [-StackName <String[]>]
   [<CommonParameters>]

Descrizione

Il Get-Location cmdlet ottiene un oggetto che rappresenta la directory corrente, in modo analogo al comando della directory di lavoro di stampa (pwd).

Quando si passa da un'unità di PowerShell all'altro, PowerShell mantiene la posizione in ogni unità. È possibile usare questo cmdlet per trovare la posizione in ogni unità.

È possibile usare questo cmdlet per ottenere la directory corrente in fase di esecuzione e usarla in funzioni e script, ad esempio in una funzione che visualizza la directory corrente nel prompt di PowerShell.

È anche possibile usare questo cmdlet per visualizzare i percorsi in uno stack di posizioni. Per altre informazioni, vedere le note e le descrizioni dei parametri Stack e StackName.

Esempio

Esempio 1: Visualizzare il percorso dell'unità corrente

Questo comando visualizza il percorso nell'unità PowerShell corrente.

PS C:\Windows> Get-Location

Path
----
C:\Windows

Ad esempio, se ci si trova nella Windows directory dell'unità C: , viene visualizzato il percorso di tale directory.

Esempio 2: Visualizzare la posizione corrente per unità diverse

In questo esempio viene illustrato l'uso di Get-Location per visualizzare la posizione corrente in unità di PowerShell diverse. Set-Location viene usato per modificare la posizione in diversi percorsi in diversi PSDrive.

PS C:\> Set-Location C:\Windows
PS C:\Windows> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C

Path
----
C:\Windows

PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive HKLM

Path
----
HKLM:\Software\Microsoft

PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\Windows> Get-Location -PSProvider Registry

Path
----
HKCU:\Control Panel\Input Method

Esempio 3: Ottenere posizioni usando stack

In questo esempio viene illustrato come usare i parametri Stack e StackName di Get-Location per elencare i percorsi nello stack di percorsi corrente e negli stack di percorsi alternativi.

Il Push-Location cmdlet viene usato per cambiare in tre posizioni diverse. Il terzo push usa un nome stack diverso. Il parametro Stack di Get-Location visualizza il contenuto dello stack predefinito. Il parametro StackName di Get-Location visualizza il contenuto dello stack denominato Stack2.

PS C:\> Push-Location C:\Windows
PS C:\Windows>Push-Location System32
PS C:\Windows\System32>Push-Location WindowsPowerShell -StackName Stack2
C:\Windows\System32\WindowsPowerShell>Get-Location -Stack

Path
----
C:\Windows
C:\

C:\Windows\System32\WindowsPowerShell>Get-Location -StackName Stack2

Path
----
C:\Windows\System32

Esempio 4: Personalizzare il prompt di PowerShell

Questo esempio illustra come personalizzare il prompt di PowerShell.

PS C:\>
function prompt { 'PowerShell: ' + (Get-Location) + '> '}
PowerShell: C:\>

La funzione che definisce il prompt include un Get-Location comando, che viene eseguito ogni volta che il prompt viene visualizzato nella console.

Il formato del prompt di PowerShell predefinito è definito da una funzione speciale denominata prompt. È possibile modificare il prompt nella console creando una nuova funzione denominata prompt.

Per visualizzare la funzione del prompt corrente, digitare il comando seguente: Get-Content Function:\prompt

Parametri

-PSDrive

Ottiene il percorso corrente nell'unità di PowerShell specificata.

Ad esempio, se ci si trova nell'unità Cert: , è possibile usare questo parametro per trovare la posizione corrente nell'unità C: .

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

-PSProvider

Ottiene il percorso corrente nell'unità supportata dal provider di PowerShell specificato. Se il provider specificato supporta più unità, questo cmdlet restituisce il percorso nell'unità a cui si accede più di recente.

Ad esempio, se ci si trova nell'unitàC:, è possibile usare questo parametro per trovare la posizione corrente nelle unità del provider del Registro di sistema di PowerShell.

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

-Stack

Indica che questo cmdlet visualizza i percorsi aggiunti allo stack di percorsi corrente. È possibile aggiungere posizioni agli stack usando il Push-Location cmdlet .

Per visualizzare i percorsi in uno stack di percorsi diverso, usare il parametro StackName . Per informazioni sugli stack di posizioni, vedere le note.

Tipo:SwitchParameter
Posizione:Named
Valore predefinito:None
Necessario:False
Accettare l'input della pipeline:False
Accettare caratteri jolly:False

-StackName

Specifica, come matrice di stringhe, gli stack di percorsi denominati. Immettere uno o più nomi di stack di percorsi.

Per visualizzare le posizioni nello stack di percorsi corrente, usare il parametro Stack . Per creare uno stack di percorsi nello stack di percorsi corrente, usare il Set-Location cmdlet .

Questo cmdlet non può visualizzare i percorsi nello stack predefinito senza nome, a meno che non sia lo stack corrente.

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

Input

None

Non è possibile inviare tramite pipe oggetti a questo cmdlet.

Output

PathInfo

Per impostazione predefinita, questo cmdlet restituisce un oggetto PathInfo .

PathInfoStack

Quando si usano i parametri Stack o StackName, questo cmdlet restituisce un oggetto PathInfoStack.

Note

PowerShell include gli alias seguenti per Get-Location:

  • Tutte le piattaforme:

    • gl
    • pwd

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. Il Get-Location cmdlet restituisce la directory corrente dello spazio di esecuzione di PowerShell corrente.

Questo cmdlet è progettato per lavorare con i dati esposti da qualsiasi provider. Per elencare i provider nella sessione, digitare Get-PSProvider. Per altre informazioni, vedere about_Providers.

I modi in cui i parametri PSProvider, PSDrive, Stack e StackName interagiscono dipende dal provider. Alcune combinazioni generano errori, ad esempio se si specifica un'unità e un provider che non espone tale unità. Se non vengono specificati parametri, questo cmdlet restituisce l'oggetto PathInfo per il provider che contiene il percorso di lavoro 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 di PowerShell *-Location , 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 questo 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 ("").