- 06/05/2017
- 4 minuti per leggere
-
- j
- s
- m
Quando navighi nei sistemi di cartelle in File Explorer, di solito hai una specifica posizione di lavoro, cioè la cartella aperta corrente. Gli elementi nella cartella corrente possono essere manipolati facilmente facendo clic su di essi. Per le interfacce a riga di comando come Cmd.exe, quando sei nella stessa cartella di un particolare file, puoi accedervi specificando un nome relativamente breve, piuttosto che dover specificare l’intero percorso del file. La directory corrente è chiamata directory di lavoro.
Windows PowerShell usa il sostantivo Location per riferirsi alla directory di lavoro, e implementa una famiglia di cmdlets per esaminare e manipolare la posizione.
Prendendo la tua posizione attuale (Get-Location)
Per determinare il percorso della tua posizione attuale nella directory, inserisci il comando Get-Location:
PS> Get-LocationPath----C:\Documents and Settings\PowerUser
Nota
Il cmdlet Get-Location è simile al comando pwd nella shell BASH. Il cmdlet Set-Location è simile al comando cd in Cmd.exe.
Setting Your Current Location (Set-Location)
Il comando Get-Location è usato con il comando Set-Location. Il comando Set-Location ti permette di specificare la posizione corrente della directory.
Set-Location -Path C:\Windows
Dopo aver inserito il comando, noterai che non ricevi alcun feedback diretto sull’effetto del comando. La maggior parte dei comandi di Windows PowerShell che eseguono un’azione producono poco o nessun output perché l’output non è sempre utile. Per verificare che si sia verificato un cambiamento di directory di successo quando si inserisce il comando Set-Location, includere il parametro -PassThru quando si inserisce il comando Set-Location:
PS> Set-Location -Path C:\Windows -PassThruPath----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 c’è un output predefinito.
È possibile specificare percorsi relativi alla posizione corrente nello stesso modo in cui si farebbe nella maggior parte delle shell di comando UNIX e Windows. Nella notazione standard per i percorsi relativi, un punto (.) rappresenta la tua cartella corrente, e un punto doppio (..) rappresenta la directory madre della tua posizione corrente.
Per esempio, se sei nella cartella C:\Windows, un punto (.) rappresenta C:\Windows e i punti doppi (..) rappresentano C:. Puoi passare dalla tua posizione attuale alla radice dell’unità C: digitando:
PS> Set-Location -Path .. -PassThruPath----C:\
La stessa tecnica funziona sulle unità di Windows PowerShell che non sono unità di file system, come HKLM:. Puoi impostare la tua posizione sulla chiave HKLM\Software nel registro di sistema digitando:
PS> Set-Location -Path HKLM:\SOFTWARE -PassThruPath----HKLM:\SOFTWARE
Puoi poi cambiare la posizione della directory nella directory madre, che è la radice dell’unità HKLM: di Windows PowerShell, usando un percorso relativo:
PS> Set-Location -Path .. -PassThruPath----HKLM:\
Puoi digitare Set-Location o usare uno degli alias integrati in Windows PowerShell per Set-Location (cd, chdir, sl). Per esempio:
chdir -Path .. -PassThru
sl -Path HKLM:\SOFTWARE -PassThru
Salvare e richiamare posizioni recenti (Push-Location e Pop-Location)
Quando si cambia posizione, è utile tenere traccia di dove si è stati e poter tornare alla posizione precedente. Il cmdlet Push-Location in Windows PowerShell crea una cronologia ordinata (uno “stack”) dei percorsi di directory in cui sei stato, e puoi fare un passo indietro attraverso la cronologia dei percorsi di directory usando il cmdlet complementare Pop-Location.
Per esempio, Windows PowerShell inizia tipicamente nella home directory dell’utente.
PS> Get-LocationPath----C:\Documents and Settings\PowerUser
Nota
La parola stack ha un significato speciale in molte impostazioni di programmazione, incluso .NET Framework. Come una pila fisica di oggetti, l’ultimo elemento che mettete in pila è il primo elemento che potete tirare fuori dalla pila. Aggiungere un elemento ad uno stack è colloquialmente conosciuto come “spingere” l’elemento sullo stack. Estrarre un elemento dalla pila è colloquialmente noto come “popping” l’elemento dalla pila.
Per spingere la posizione corrente sullo stack, e poi spostarsi nella cartella Local Settings, digita:
Push-Location -Path "Local Settings"
Puoi quindi spingere la posizione Local Settings sullo stack e spostarti nella cartella Temp digitando:
Push-Location -Path Temp
Puoi verificare che hai cambiato directory digitando il comando Get-Location:
PS> Get-LocationPath----C:\Documents and Settings\PowerUser\Local Settings\Temp
Puoi quindi tornare indietro nella directory visitata più di recente digitando il comando Pop-Location e verificare il cambiamento digitando il comando Get-Location:
PS> Pop-LocationPS> Get-LocationPath----C:\Documents and Settings\me\Local Settings
Proprio come con il cmdlet Set-Location, puoi includere il parametro -PassThru quando inserisci il cmdlet Pop-Location per visualizzare la directory che hai inserito:
PS> Pop-Location -PassThruPath----C:\Documents and Settings\PowerUser
Puoi anche usare i cmdlet Location con percorsi di rete. Se avete un server chiamato FS01 con una quota chiamata Public, potete cambiare la posizione digitando
Set-Location \FS01\Public
o
Push-Location \FS01\Public
Potete usare i comandi Push-Location e Set-Location per cambiare la posizione in qualsiasi unità disponibile. Per esempio, se hai un’unità CD-ROM locale con lettera D che contiene un CD di dati, puoi cambiare la posizione nell’unità CD inserendo il comando Set-Location D:.
Se l’unità è vuota, otterrai il seguente messaggio di errore:
PS> Set-Location D:Set-Location : Cannot find path 'D:\' because it does not exist.
Quando stai usando un’interfaccia a riga di comando, non è conveniente usare File Explorer per esaminare le unità fisiche disponibili. Inoltre, File Explorer non ti mostrerebbe tutte le unità di Windows PowerShell. Windows PowerShell fornisce una serie di comandi per manipolare le unità di Windows PowerShell, e ne parleremo in seguito.