Gestione del percorso corrente

Nei sistemi di cartelle in Esplora file è in genere presente un percorso di lavoro specifico, ossia la cartella attualmente aperta. Per manipolare gli elementi della cartella, è sufficiente fare clic su di essi. Per le interfacce della riga di comando come Cmd.exe, quando ci si trova nella stessa cartella di un determinato file è possibile accedervi specificando un nome relativamente breve, invece dell'intero percorso del file. La directory corrente si chiama directory di lavoro.

PowerShell usa il sostantivo Location per fare riferimento alla directory di lavoro e implementa una famiglia di cmdlet per esaminare e modificare la posizione.

Recupero della posizione corrente (Get-Location)

Per determinare il percorso della directory corrente, immettere il Get-Location comando :

Get-Location
Path
----
C:\Documents and Settings\PowerUser

Nota

Il Get-Location cmdlet è simile al comando pwd nella shell BASH. Il Set-Location cmdlet è simile al comando cd in Cmd.exe.

Impostazione della posizione corrente (Set-Location)

Il Get-Location comando viene usato con il Set-Location comando . Il Set-Location comando consente di specificare il percorso della directory corrente.

Set-Location -Path C:\Windows

Dopo aver immesso il comando, si noti che non si riceve alcun feedback diretto sull'effetto del comando. La maggior parte dei comandi di PowerShell che eseguono un'azione produce poco o nessun output perché l'output non è sempre utile. Per verificare che si sia verificata una modifica della directory corretta quando si immette il Set-Location comando, includere il parametro PassThru quando si immette il Set-Location comando:

Set-Location -Path C:\Windows -PassThru
Path
----
C:\WINDOWS

Il parametro PassThru può essere usato con molti comandi Set in PowerShell per restituire informazioni sul risultato per i casi in cui non è presente alcun output predefinito.

È possibile specificare percorsi relativi al percorso corrente con la stessa procedura richiesta dalla maggior parte delle shell di comandi di UNIX e Windows. Nella notazione standard per i percorsi relativi, un punto (.) rappresenta la cartella corrente e un punto doppio (..) rappresenta la directory padre del percorso corrente.

Ad esempio, se si è nella C:\Windows cartella , un punto (.) rappresenta C:\Windows e i punti doppi (..) rappresentano C:. È possibile passare dalla posizione corrente alla radice dell'unità C: digitando:

Set-Location -Path .. -PassThru
Path
----
C:\

La stessa tecnica funziona sulle unità di PowerShell che non sono unità di file system, ad esempio HKLM:. È possibile impostare la posizione sulla HKLM\Software chiave nel Registro di sistema digitando:

Set-Location -Path HKLM:\SOFTWARE -PassThru
Path
----
HKLM:\SOFTWARE

È quindi possibile modificare il percorso della directory nella directory padre usando un percorso relativo:

Set-Location -Path .. -PassThru
Path
----
HKLM:\

È possibile digitare Set-Location o usare uno qualsiasi degli alias di PowerShell predefiniti per Set-Location (cd, chdir, sl). Ad esempio:

cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru

Salvataggio e richiamo di posizioni recenti (posizione push e posizione popup)

Quando si modificano le posizioni, è utile tenere traccia della posizione in cui si è stati e di poter tornare alla posizione precedente. Il Push-Location cmdlet in PowerShell crea una cronologia ordinata (uno "stack") di percorsi di directory in cui si è stati ed è possibile tornare indietro nella cronologia dei percorsi di directory usando il Pop-Location cmdlet .

Ad esempio, PowerShell viene in genere avviato nella home directory dell'utente.

Get-Location

Path
----
C:\Documents and Settings\PowerUser

Nota

Il termine stack ha un significato speciale in molte impostazioni di programmazione, tra cui .NET Framework. L'ultimo elemento inserito nello stack è il primo che è possibile prelevare. L'aggiunta di un elemento allo stack si definisce normalmente con il termine "push". Il prelievo di un elemento dallo stack è invece noto come operazione "pop".

Per effettuare il push del percorso corrente nello stack e quindi passare alla cartella Local Settings, digitare:

Push-Location -Path "Local Settings"

È quindi possibile effettuare il push del percorso Local Settings nello stack e passare alla cartella Temp digitando:

Push-Location -Path Temp

È possibile verificare che le directory modificate siano state modificate immettendo il Get-Location comando :

Get-Location
Path
----
C:\Documents and Settings\PowerUser\Local Settings\Temp

È quindi possibile tornare alla directory visitata più di recente immettendo il Pop-Location comando e verificando la modifica immettendo il Get-Location comando :

Pop-Location
Get-Location
Path
----
C:\Documents and Settings\me\Local Settings

Come per il Set-Location cmdlet, è possibile includere il parametro PassThru quando si immette il Pop-Location cmdlet per visualizzare la directory immessa:

Pop-Location -PassThru
Path
----
C:\Documents and Settings\PowerUser

È possibile usare i cmdlet Location anche con i percorsi di rete. Se si dispone di un server denominato FS01 con una condivisione denominata Public, è possibile modificare la posizione digitando

Set-Location \\FS01\Public

or

Push-Location \\FS01\Public

È possibile usare i Push-Location comandi e Set-Location per modificare il percorso in qualsiasi unità disponibile. Ad esempio, se si dispone di un'unità CD-ROM locale con lettera di unità D che contiene un CD di dati, è possibile modificare il percorso dell'unità CD immettendo il Set-Location D: comando .

Se l'unità è vuota, viene visualizzato il messaggio di errore seguente:

Set-Location D:
Set-Location : Cannot find path 'D:\' because it does not exist.

Quando si usa un'interfaccia della riga di comando, non è consigliabile usare Esplora file per esaminare le unità fisiche disponibili. Inoltre, Esplora file non visualizzerebbe tutte le unità di PowerShell. PowerShell offre un set di comandi per la modifica delle unità di PowerShell.