PowerShell Cambia Directory: Navigare nel Tuo Sistema di File

In Windows, cambiare directory è una parte fondamentale della gestione dei file, ma ti accontenteresti di scrivere i percorsi completi di ogni directory che visiti? Fortunatamente, i comandi di cambio directory di PowerShell possono rendere la tua vita più facile.

In questa guida, esplorerai i comandi disponibili per cambiare le directory in PowerShell, aiutandoti a navigare nel tuo sistema di file senza sforzo.

Continua a leggere e padroneggia le basi della navigazione del file system con PowerShell oggi!

Prerequisiti

Questa guida sarà una dimostrazione pratica. Per seguire, assicurati di avere un sistema Windows con PowerShell installato. Questa guida utilizza Windows 10 e PowerShell v7.

Passaggio da un’unità all’altra

Ogni dispositivo di archiviazione, come un disco rigido o una chiavetta USB, è assegnato a una lettera di unità (ad es., C:, D:, E:, …Z:). Quando apri una finestra PowerShell, il prompt si trova nella directory del profilo utente sull’unità corrente per impostazione predefinita.

Supponi di aver bisogno di accedere frequentemente a file o cartelle memorizzati su un’unità diversa da quella su cui ti trovi attualmente. In tal caso, è necessario passare da un’unità all’altra.

Per vedere come passare da un’unità all’altra:

1. Apri PowerShell e conferma se il prompt indica C:\Users\admin. Se è così, allora sei attualmente sul drive C: nella directory del profilo dell’utente admin, come mostrato di seguito.

Viewing the default working drive

2. Successivamente, apri un’altra sessione di PowerShell, ma questa volta, come amministratore.

Qui sotto, il prompt inizia in una directory predefinita diversa rispetto al lancio di PowerShell come utente normale. In particolare, il prompt inizia nella directory System32 all’interno della directory Windows sul drive corrente (C:), come mostrato di seguito.

Questo comportamento predefinito impedisce agli utenti non amministrativi di modificare accidentalmente file di sistema critici o di eseguire strumenti sensibili.

Viewing the default working drive as an admin

3. Esegui il comando sottostante per cambiare il drive corrente in D: (o in qualsiasi altro drive disponibile). Questa sintassi è un modo rapido per navigare tra diversi drive in PowerShell.

D:

Quando si cambia drive in PowerShell con questo metodo, il prompt cambia alla directory radice del nuovo drive, come nell’output qui sotto.

Come puoi vedere, indipendentemente dalla directory predefinita in cui inizia PowerShell, puoi sempre passare a un altro drive.

Switching to another drive

4. Ora, esegui il comando sottostante per tentare di passare alla directory D:\Kitty (o a qualsiasi altra sotto-directory).

D:\Kitty

Ecco la traduzione:

Utente: Hai ricevuto lo stesso errore di seguito? Questo errore si verifica poiché non è possibile passare a sottodirectory (ad esempio, D:\Kitty) in un’unica operazione con questo metodo.

Vai alla sezione seguente per vedere come passare a sottodirectory.

Attempting to switch to subdirectories

Navigare nel sistema di file tramite il comando cd

Navigare in molte sottodirectory è un’attività comune in PowerShell. Ma c’è un modo rapido per navigare tra diverse sottodirectory? Sì! Il comando cd, abbreviazione di “change directory”, ti consente di passare rapidamente a un’altra sottodirectory indipendentemente dalla tua directory corrente.

Un tempo, il comando cd veniva utilizzato per navigare tra unità e directory nel Prompt dei comandi. Microsoft ha reso il comando cd retrocompatibile in modo da poter comunque navigare tra directory in PowerShell.

Continua a leggere e scopri come navigare nel tuo sistema di file con il comando cd.

Spostarsi in una directory su un’unità diversa

Passare a una sottodirectory su un’unità diversa potrebbe sembrare complicato se ci pensi. Beh, non c’è bisogno di pensarci troppo. Sarai sorpreso di quanto velocemente il comando cd ti permette di passare a un’altra unità mentre ti sposti in una delle sue directory.

Esegui il comando seguente per navigare alla sottodirectory chiamata Kitty nell’unità D:*.

cd D:\Kitty
Navigating a subdirectory in another drive

Spostarsi di uno o più livelli nella gerarchia delle directory

Con la gestione del sistema di file, o quando si lavora su un progetto, potresti aver bisogno frequentemente di spostarti di uno o due livelli dalla tua directory corrente. Il comando cd supporta la notazione `..` che ti permette di passare efficacemente alla directory genitore della tua directory corrente.

Questa funzionalità ti consente di spostarti di un livello nel tuo sistema di file senza specificare il percorso completo della directory genitore.

1. Esegui il comando cd di seguito, aggiungi uno spazio e la notazione .., che dice a PowerShell di salire di un livello nella gerarchia delle directory.

Il carattere spazio dopo il comando cd non è necessario, poiché il comando funzionerà correttamente anche senza di esso. Ma aggiungere uno spazio è una pratica comune per una migliore leggibilità e coerenza con altri comandi.

cd ..

Nel risultato qui sotto, puoi vedere che il prompt si sposta di un livello dalla C:\Users\admin\Documents alla directory C:\Users\admin. Nota che non hai dovuto specificare il percorso completo per la directory C:\Users\admin per spostarti verso l’alto.

Moving up one level in the directory hierarchy

2. Invece di spostarti di un livello in su, esegui il seguente comando con due notazioni .., aggiungendo una barra rovesciata (\) alla fine di ciascuna. In questo modo puoi spostarti di due livelli nella gerarchia delle directory.

cd ..\..\

Nel risultato qui sotto, puoi vedere che sei passato dalla C:\Users\admin\Documents direttamente alla directory C:\Users.

Moving up two levels from the current directory

3. Infine, esegui il comando qui sotto per spostarti alla directory radice del tuo drive corrente.

Se ti sei perso nel tuo sistema di file, questo comando è utile in quanto ti consente di saltare rapidamente alla directory principale. Questo comando ti risparmia la seccatura di eseguire il comando cd .. più volte.

cd \
Moving up to the root directory

Muoversi in una sottodirectory specifica

Come muoversi di un livello nella gerarchia delle directory, entrare in una sottodirectory specifica è anche un’operazione veloce. Poiché potrebbero esserci molte sottodirectory, l’aggiunta di notazioni come quelle precedenti (.. e ..\) non funzionerà, è necessario specificare il nome della sottodirectory.

Esegui il comando sottostante per entrare in una delle sottodirectory (\admin) nella tua directory corrente (.).

cd .\admin

Nota che hai risparmiato tempo ed sforzo poiché non hai dovuto specificare il percorso completo della C:\Users\admin directory.

Moving into one of the subdirectories

Navigare nel sistema di file con i cmdlet di PowerShell

Sebbene il comando cd funzioni senza dubbio in PowerShell, Microsoft ha introdotto molti cmdlet, come Set-Location, che ti permettono di navigare nel tuo sistema di file.

Questi cmdlet forniscono funzionalità più robuste rispetto al comando cd che puoi utilizzare per passare tra le unità, navigare tra le posizioni impilate e scorrere le directory nella cronologia delle posizioni.

Rimani sintonizzato e osserva quanto sono potenti i cmdlet di PowerShell nella navigazione nel tuo sistema di file.

Impostare una posizione da un’unità diversa

Come il comando cd, il cmdlet Set-Location ti consente di passare da una directory a un’altra e di navigare direttamente in una delle sue sottodirectory. Ma poiché stai utilizzando un cmdlet di PowerShell, devi aggiungere il parametro -Path per impostare il percorso della tua posizione di destinazione.

Il cmdlet Set-Location imposta la directory di lavoro corrente su una posizione specifica. Tale posizione specifica può essere una delle seguenti:

  • A directory, or subdirectory on the local file system.
  • Qualsiasi altra posizione supportata da un provider in PowerShell.
  • O una posizione del registro.

Per vedere come funziona il cmdlet Set-Location nella navigazione del tuo sistema di file:

Esegui il comando sottostante per navigare nella directory Kitty nel tuo disco D: specificato nel parametro -Path.

Set-Location -Path "D:\Kitty"
Navigating to a directory in another drive

Se ti senti un po’ pigro nel digitare l’intero cmdlet Set-Location, puoi anche utilizzare uno dei suoi alias, come chdir e sl, per navigare nel tuo sistema di file. Gli alias forniscono un modo più comodo per accedere a comandi utilizzati frequentemente.

Ora, esegui il comando sottostante per impostare la posizione di lavoro su una posizione specifica nel registro. In questo caso, il percorso HKLM:\ (una scorciatoia) si riferisce all’alveo HKEY_LOCAL_MACHINE nel Registro di sistema di Windows.

Questo comando imposta la posizione di lavoro alla radice dell’arnia HKEY_LOCAL_MACHINE nel registro. Navigare in un registro consente di accedere e modificare le sue sottochiavi e valori tramite altri comandi PowerShell.

Set-Location -Path "HKLM:\”
Setting the working location to a specific registry location

Cambiare tra le posizioni impilate (Push e Pop)

Accedere rapidamente alle posizioni impilate sembra comodo. Ma è possibile? Sì! I cmdlet Push-Location e Pop-Location ti consentono di spingere e estrarre posizioni in ordine LIFO (ultimo ad entrare, primo ad uscire) da uno stack nominato.

Per navigare tra le posizioni impilate, segui questi passaggi:

1. Esegui il comando Push-Location sottostante per spingere la tua posizione attuale in uno stack chiamato Paths e impostare la directory C:\Program Files\PowerShell\ come directory corrente.

Push-Location -Path 'C:\Program Files\PowerShell\' -StackName "Paths"
Pushing the current location to a stack called Paths

2. Successivamente, esegui il comando sottostante per spingere la tua posizione attuale (C:\Program Files\PowerShell\) in cima allo stesso stack Paths.

Push-Location -Path 'C:\Program Files\WindowsPowerShell\' -StackName "Paths"

3. Esegui ciascun comando sottostante per impostare Paths come stack predefinito e visualizzare (Get-Location) le posizioni impilate.

# Imposta lo stack Paths come predefinito
Set-Location -StackName "Paths"
# Visualizza tutti i percorsi impilati nello stack predefinito
Get-Location -Stack

Di seguito, puoi vedere che attualmente hai due posizioni impilate, dove l’ultima posizione che hai spinto è in cima.

Viewing stacked locations in the Paths stack

4. Ora, esegui il seguente comando Pop-Location due volte per estrarre la posizione in cima dalla stack predefinita, che attualmente è la stack dei percorsi.

Pop-Location
Changing the current directory by popping stacked locations

Nota che estrarre la posizione dalla stack rimuove la posizione dalla stack. L’errore sottostante indica che hai estratto tutte le posizioni impilate dalla stack predefinita.

Attempting to view an empty stack

Navigare in una directory memorizzata in una variabile

Sei passato attraverso modi diversi per navigare nelle directory del tuo sistema di file. Ma cosa succede se devi navigare frequentemente in una posizione specifica? Digitare percorsi completi più volte o scorrere la cronologia delle posizioni può essere noioso. Perché non memorizzare invece il percorso completo di una directory in una variabile?

Con una variabile dichiarata, puoi navigare nella directory di destinazione senza specificare il percorso a memoria.

1. Esegui i comandi seguenti per memorizzare la directory C:\Program Files\PowerShell\ nella variabile $psh e impostare quella posizione ($psh) come directory corrente.

# Memorizza il percorso di una directory in una variabile
$psh = 'C:\Program Files\PowerShell\'
# Imposta la directory dalla variabile $psh come directory corrente
Set-Location -Path $psh

L’output sottostante conferma il cambio di directory riuscito utilizzando una variabile. Indipendentemente dalla tua directory corrente, puoi navigare rapidamente alla directory C:\Program Files\PowerShell\ tramite la variabile $psh.

Ma nota che questo metodo funziona solo per la sessione corrente di PowerShell a meno che tu non persista la variabile, come dimostrato nel passaggio seguente.

Navigating to a location stored in a variable

2. Successivamente, esegui i comandi seguenti, che non forniscono un output, ma persistono la variabile ev_psh come variabile di ambiente (SetEnvironmentVariable) con il valore del percorso completo della directory.

# Aggiungi psh come variabile di ambiente
[System.Environment]::SetEnvironmentVariable('ev_psh', 'C:\Program Files\PowerShell\', 'Machine')
# Ricarica la variabile di ambiente appena aggiunta (ev_psh)
$Env:ev_psh = [System.Environment]::GetEnvironmentVariable("ev_psh","Machine")

3. Infine, esegui il comando seguente per impostare il valore della variabile di ambiente ev_psh come directory corrente. Assicurati di trovarti in una directory diversa da quella nella tua variabile ev_psh.

Set-Location -Path $env:ev_psh
Setting the value of an environment variable as the current directory

Ciclo tra le directory nella Cronologia della Posizione di PowerShell

Un altro modo rapido per navigare tra le directory nella Cronologia della Posizione di PowerShell è utilizzare la cronologia della posizione. Il parametro -Path indica al cmdlet Set-Location di navigare verso un’altra directory dalla cronologia della posizione (precedente e successiva), a seconda del valore specificato (- o +).

Esegui i seguenti comandi impostando le posizioni dalla cronologia come directory corrente. Il carattere + ti porta avanti nella cronologia delle posizioni, mentre il carattere - ti riporta indietro.

# Imposta la directory root di sistema come directory corrente 
Set-Location -Path $env:SystemRoot

# Torna alla directory precedente nella cronologia (fornitore di certificati)
Set-Location -Path -

# Torna alla directory precedente nella cronologia (ancora directory root di sistema)
Set-Location -Path -

# Avanza fino alla directory di lavoro successiva nella cronologia (fornitore di certificati)
Set-Location -Path +

# Avanza fino alla directory di lavoro successiva nella cronologia (alveare HKEY_LOCAL_MACHINE)
Set-Location -Path +
Cycling through locations in the location history

Conclusione

La navigazione del sistema di file può essere complicata quando le opzioni sono limitate. Ma con i comandi di cambio directory di PowerShell, come Set-Location, hai molte opzioni. Come desideri navigare nel tuo sistema di file in modo più efficiente è totalmente a tua discrezione.

Inoltre, padroneggiare l’uso di Push-Location e Pop-Location per salvare e richiamare posizioni recenti è una competenza preziosa.

Queste tecniche ti permettono di muoverti rapidamente e senza intoppi attraverso directory e posizioni in PowerShell. Ma per migliorare ulteriormente, perché non considerare di imparare comandi aggiuntivi, come Get-ChildItem, che possono risparmiarti molto tempo nei tuoi compiti quotidiani?

Source:
https://adamtheautomator.com/powershell-change-directory/