Nello spostarsi tra le cartelle in Esplora risorse di solito si parte da una posizione specifica, ossia la cartella corrente aperta. Gli elementi della cartella corrente possono essere modificati facilmente facendovi clic. Nel caso delle interfacce della riga di comando come Cmd.exe, quando ci si trova nella stessa cartella di un determinato file, è possibile accedervi specificando il nome breve anziché l'intero percorso del file. La directory corrente è detta directory di lavoro.
In Windows PowerShell viene utilizzato il sostantivo Location per fare riferimento alla directory di lavoro ed è stata implementata una famiglia di cmdlet che consentono di esaminare e modificare il percorso in uso.
Determinazione del percorso corrente (Get-Location)
Per determinare il percorso della directory di lavoro corrente, immettere il comando Get-Location:
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
Nota | |
Il cmdlet Get-Location è simile al comando pwd della shell BASH. Il cmdlet Set-Location è simile al comando cd di Cmd.exe. |
Impostazione del percorso corrente (comando Set-Location)
Il comando Get-Location viene utilizzato con il comando Set-Location. Il comando Set-Location consente di specificare il percorso della directory corrente.
PS> Set-Location -Path C:\Windows
Si noterà che, dopo aver immesso il comando, non viene visualizzato alcun feedback diretto circa l'effetto del comando. La maggior parte dei comandi di Windows PowerShell che eseguono un'azione produce un output scarso o inesistente poiché l'output non sempre è utile. Per verificare se, dopo l'immissione del comando Set-Location, la modifica della directory è riuscita, includere il parametro -PassThru quando si immette il comando Set-Location:
PS> Set-Location -Path C:\Windows -PassThru Path ---- C:\WINDOWS
Il parametro -PassThru può essere utilizzato con molti comandi Set in Windows PowerShell per restituire informazioni sul risultato nei casi in cui non esista un output predefinito.
È possibile specificare percorsi relativi alla posizione corrente nello stesso modo in cui lo si fa in quasi tutte le shell dei comandi UNIX e Windows. Nella notazione standard adottata per i percorsi relativi, un punto (.) rappresenta la cartella corrente, mentre due punti consecutivi (..) rappresentano la directory padre del percorso corrente.
Ad esempio, se si è nella cartella C:\Windows, un punto (.) rappresenta C:\Windows e due punti consecutivi (..) rappresentano C:. È possibile passare dal percorso corrente alla radice dell'unità C: digitando:
PS> Set-Location -Path .. -PassThru
Path
----
C:\
La stessa tecnica può essere applicata alle unità di Windows PowerShell non file system, ad esempio HKLM:. È possibile impostare la posizione sulla chiave HKLM\Software del Registro di sistema digitando:
PS> Set-Location -Path HKLM:\SOFTWARE -PassThru Path ---- HKLM:\SOFTWARE
È quindi possibile impostare il percorso della directory sulla directory padre, che è la radice dell'unità HKLM: di Windows PowerShell, utilizzando un percorso relativo:
PS> Set-Location -Path .. -PassThru Path ---- HKLM:\
È possibile digitare Set-Location o utilizzare uno degli alias predefiniti di Windows PowerShell disponibili per Set-Location (cd, chdir, sl). Ad esempio:
cd -Path C:\Windows
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru
Salvataggio e richiamo dei percorsi recenti (Push-Location e Pop-Location)
Quando si cambia la posizione, è utile tenere traccia di dove si era e poter tornare alla posizione precedente. Il cmdlet Push-Location di Windows PowerShell consente di creare una cronologia ordinata ("stack") dei percorsi di directory che sono stati utilizzati. La cronologia dei percorsi di directory può essere visualizzata utilizzando il cmdlet complementare Pop-Location.
Ad esempio, Windows PowerShell viene in genere avviato nella home directory dell'utente.
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser
Nota | |
La parola stack ha un significato speciale in molte impostazioni di programmazione, incluso .NET Framework. Analogamente a una pila fisica di oggetti, l'ultimo oggetto impilato è il primo che diventa disponibile. L'aggiunta di un elemento a una pila è colloquialmente nota in inglese come "pushing", mentre la sottrazione di un elemento da una pila è colloquialmente nota in inglese come "popping". |
Per aggiungere la posizione corrente allo stack e quindi rimuovere la cartella Impostazioni locali, digitare:
PS> Push-Location -Path "Local Settings"
È quindi possibile aggiungere la posizione Impostazioni locali allo stack e spostarsi nella cartella Temp digitando:
PS> Push-Location -Path Temp
Per verificare di aver cambiato le directory, immettere il comando Get-Location:
PS> Get-Location Path ---- C:\Documents and Settings\PowerUser\Local Settings\Temp
È quindi possibile tornare alla directory visitata più di recente immettendo il comando Pop-Location e verificare la modifica immettendo il comando Get-Location:
PS> Pop-Location PS> Get-Location Path ---- C:\Documents and Settings\me\Local Settings
Come per il cmdlet Set-Location, è possibile includere il parametro -PassThru quando si immette il cmdlet Pop-Location per visualizzare la directory immessa:
PS> Pop-Location -PassThru Path ---- C:\Documents and Settings\PowerUser
Inoltre è possibile utilizzare i cmdlet Location con i percorsi di rete. Se esiste un server denominato FS01 con una condivisione denominata Public, è possibile cambiare la posizione digitando:
Set-Location \\FS01\Public
oppure
Push-Location \\FS01\Public
I comandi Push-Location e Set-Location possono essere utilizzati per cambiare il percorso impostandolo su un'unità disponibile. Se ad esempio si dispone di un'unità CD-ROM locale la cui lettera di unità è D e in cui è inserito un CD dati, è possibile cambiare il percorso impostandolo sull'unità CD-ROM con il comando Set-Location D:.
Se l'unità è vuota, verrà visualizzato il messaggio di errore seguente:
PS> Set-Location D: Set-Location : Cannot find path 'D:\' because it does not exist.
Quando si utilizza un'interfaccia della riga di comando, non è conveniente utilizzare Esplora risorse per esaminare le unità fisiche disponibili. Inoltre, Esplora risorse non consente di visualizzare tutte le unità di Windows PowerShell. In Windows PowerShell è disponibile un set di comandi per la modifica delle unità di Windows PowerShell che verrà illustrato in seguito.