Condividi tramite


Get-Location

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

Sintassi

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

Descrizione

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

Quando si passa da un'unità di Windows PowerShell a un'altra, Windows PowerShell mantiene il percorso 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 Windows 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 la posizione corrente dell'unità

PS C:\> Get-Location
Path
----
C:\WINDOWS

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

Ad esempio, se si è nella directory di Windows dell'unità C: visualizza il percorso di tale directory.

Esempio 2: Visualizzare la posizione corrente per unità diverse

The first command uses the **Set-Location** cmdlet to set the current location to the Windows subdirectory of the C: drive.
PS C:\> Set-Location C:\Windows

The second command uses the **Set-Location** cmdlet to change the location to the HKLM:\Software\Microsoft registry key. When you change to a location in the HKLM: drive, Windows PowerShell retains your location in the C: drive.
PS C:\>
PS C:\WINDOWS> Set-Location HKLM:\Software\Microsoft
PS HKLM:\Software\Microsoft>

The third command uses the **Set-Location** cmdlet to change the location to the HKCU:\Control Panel\Input Method registry key.
PS C:\>
PS HKLM:\Software\Microsoft> Set-Location "HKCU:\Control Panel\Input Method"
PS HKCU:\Control Panel\Input Method>

The fourth command uses the **Get-Location** cmdlet to find the current location on the C: drive. It uses the *PSDrive* parameter to specify the drive.
PS C:\>
PS HKCU:\Control Panel\Input Method> Get-Location -PSDrive C



Path
----
C:\WINDOWS

The fifth command uses the **Set-Location** cmdlet to return to the C: drive. Even though the command does not specify a subdirectory, Windows PowerShell returns you to the saved location.
PS C:\>
PS HKCU:\Control Panel\Input Method> Set-Location C:
PS C:\WINDOWS>

The sixth command uses the **Get-Location** cmdlet to find the current location in the drives supported by the Windows PowerShell registry provider. **Get-Location** returns the location of the most recently accessed registry drive, HKCU.
PS C:\>
PS C:\WINDOWS> Get-Location -PSProvider registry




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

To see the current location in the HKLM: drive, you need to use the *PSDrive* parameter to specify the drive. The seventh command does just this:
PS C:\>
PS C:\WINDOWS> Get-Location -PSDrive HKLM



Path
----
HKLM:\Software\Microsoft

In questo esempio viene illustrato l'uso di Get-Location per visualizzare la posizione corrente in unità di Windows PowerShell diverse.

Esempio 3: Elencare le posizioni nello stack di posizioni correnti e negli stack di percorsi alternativi

The first command sets the current location to the Windows directory on the C: drive.
PS C:\> Set-Location C:\Windows

The second command uses the **Push-Location** cmdlet to push the current location (C:\Windows) onto the current location stack and change to the System32 subdirectory. Because no stack is specified, the current location is pushed onto the current location stack. By default, the current location stack is the unnamed default location stack.
C:\WINDOWS> Push-Location System32

The third command uses the *StackName* parameter of the **Push-Location** cmdlet to push the current location (C:\Windows\System32) onto the Stack2 stack and to change the current location to the WindowsPowerShell subirectory. If the Stack2 stack does not exist, **Push-Location** creates it.
C:\Windows\System32> Push-Location WindowsPowerShell -StackName Stack2

The fourth command uses the *Stack* parameter of the **Get-Location** cmdlet to get the locations in the current location stack. By default, the current stack is the unnamed default location stack.
C:\WINDOWS\system32\WindowsPowerShell> Get-Location -Stack
Path
----
C:\WINDOWS

The fifth command uses the *StackName* parameter of the **Get-Location** cmdlet to get the locations in the Stack2 stack.
PS C:\>
C:\WINDOWS\system32\WindowsPowerShell>get-location -stackname Stack2



Path
----
C:\WINDOWS\system32

Questo comando illustra come usare i parametri Stack e StackName di Get-Location per elencare le posizioni nello stack di posizioni correnti e negli stack di percorsi alternativi. Per altre informazioni sugli stack di percorsi, vedere le note.

Esempio 4: Personalizzare il prompt Windows PowerShell

PS C:\>
function prompt { 'PowerShell: ' + (get-location) + '> '}
PowerShell: C:\WINDOWS>

Questo esempio illustra come personalizzare il prompt di Windows PowerShell. La funzione che definisce il prompt include un comando Get-Location , che viene eseguito ogni volta che viene visualizzato il prompt nella console.

Il formato del prompt Windows 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

Il comando inizia con la parola chiave della funzione seguita dal nome della funzione, prompt. Il corpo della funzione viene visualizzato all'interno di parentesi graffe ( {} ).

Questo comando definisce un nuovo prompt che inizia con la stringa PowerShell: . Per aggiungere il percorso corrente, usa un comando Get-Location , che viene eseguito quando viene chiamata la funzione del prompt. Il prompt termina con la stringa "> ".

Parametri

-PSDrive

Specifica il percorso corrente nell'unità Windows PowerShell specificata che questo cmdlet ottiene nell'operazione.

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-PSProvider

Specifica il percorso corrente nell'unità supportata dal provider di Windows PowerShell che questo cmdlet ottiene nell'operazione.

Se il provider specificato supporta più unità, questo cmdlet restituisce il percorso nell'unità di accesso più recente.

Ad esempio, se si è nell'unità C: è possibile usare questo parametro per trovare la posizione corrente nelle unità del provider Windows PowerShellRegistry.

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-Stack

Indica che questo cmdlet visualizza le posizioni nello stack di posizioni corrente.

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

Type:SwitchParameter
Position:Named
Default value:None
Required:False
Accept pipeline input:False
Accept wildcard characters:False

-StackName

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

Per visualizzare le posizioni nello stack di posizioni corrente, usare il parametro Stack . Per impostare uno stack di percorsi come stack di percorsi corrente, usare parametro Set-Location. Per informazioni sullo stack di percorsi, vedere le note.

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

Type:String[]
Position:Named
Default value:None
Required:False
Accept pipeline input:True
Accept wildcard characters:False

-UseTransaction

Include il comando nella transazione attiva. Questo parametro è valido solo quando è in corso una transazione. Per altre informazioni, vedere about_Transactions.

Type:SwitchParameter
Aliases:usetx
Position:Named
Default value:False
Required:False
Accept pipeline input:False
Accept wildcard characters:False

Input

None

Non è possibile inviare input tramite pipe a questo cmdlet.

Output

System.Management.Automation.PathInfo or System.Management.Automation.PathInfoStack

Se si usano i parametri Stack o StackName , questo cmdlet restituisce un oggetto StackInfo . In caso contrario, restituisce un oggetto PathInfo .

Note

  • Questo cmdlet è progettato per usare 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 dipendono 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 last-in, first-out 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. Windows PowerShell consente di archiviare i percorsi dei provider in stack di percorsi. Windows PowerShell crea uno stack di percorsi predefinito senza nome ed è possibile creare più stack di percorsi con nome. Se non si specifica un nome di stack, Windows PowerShell usa lo stack di percorsi corrente. Per impostazione predefinita, la posizione predefinita non denominata è lo stack di posizioni corrente, ma è possibile usare il cmdlet Set-Location per modificare lo stack di posizioni corrente.

    Per gestire gli stack di posizioni, usare i cmdlet di Windows PowerShellLocation, come indicato di seguito.

    • Per aggiungere una posizione a uno stack di posizioni, usare il cmdlet Push-Location.

    • Per ottenere una posizione da uno stack di posizioni, usare il cmdlet Pop-Location.

    • Per visualizzare le posizioni nello stack di posizioni corrente, usare il parametro Stack del cmdlet Get-Location . Per visualizzare i percorsi in uno stack di percorsi denominato, usare il parametro StackName del cmdlet Get-Location .

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

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

    Lo stack di percorsi predefinito senza nome è pienamente accessibile solo quando è lo stack di percorsi corrente. Se si crea uno stack di posizioni denominato lo stack di posizioni corrente, non è più possibile usare l'aggiunta push-location o l'aggiunta pop-location o ottenere elementi dallo stack predefinito o usare questo comando cmdlet per visualizzare le posizioni 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 ("").