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
Per impostazione predefinita, questo cmdlet restituisce un oggetto PathInfo .
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]::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.
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 delGet-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 (""
).