PowerShell Changer de Répertoire: Naviguer dans Votre Système de Fichiers

Dans Windows, changer de répertoire est une partie fondamentale de la gestion des fichiers, mais seriez-vous prêt à écrire les chemins complets de chaque répertoire que vous visitez ? Heureusement, les commandes de changement de répertoire PowerShell peuvent faciliter votre vie.

Dans ce tutoriel, vous explorerez les commandes disponibles pour changer de répertoire dans PowerShell, ce qui vous aidera à naviguer dans votre système de fichiers sans effort.

Lisez la suite et maîtrisez les bases de la navigation dans le système de fichiers avec PowerShell dès aujourd’hui !

Prérequis

Ce tutoriel sera une démonstration pratique. Pour suivre, assurez-vous d’avoir un système Windows avec PowerShell installé. Ce tutoriel utilise Windows 10 et PowerShell v7.

Passer d’un lecteur à un autre

Chaque périphérique de stockage, comme un disque dur ou une clé USB, est assigné une lettre de lecteur (c’est-à-dire C:, D:, E:, …Z:). Lorsque vous ouvrez une fenêtre PowerShell, l’invite se trouve dans votre répertoire de profil utilisateur sur le lecteur actuel par défaut.

Supposons que vous ayez besoin d’accéder fréquemment à des fichiers ou dossiers stockés sur un lecteur différent de celui sur lequel vous vous trouvez actuellement. Si tel est le cas, il est nécessaire de passer d’un lecteur à un autre.

Pour voir comment passer d’un lecteur à un autre :

1. Ouvrez PowerShell et confirmez si l’invite indique C:\Utilisateurs\admin. Si tel est le cas, vous êtes actuellement sur le lecteur C: dans le répertoire du profil de l’utilisateur admin, comme indiqué ci-dessous.

Viewing the default working drive

2. Ensuite, ouvrez une autre session PowerShell, mais cette fois en tant qu’administrateur.

À noter, l’invite démarre dans un répertoire par défaut différent de celui du lancement de PowerShell en tant qu’utilisateur régulier. Plus précisément, l’invite démarre dans le répertoire System32 du répertoire Windows sur le lecteur actuel (C:), comme illustré ci-dessous.

Ce comportement par défaut empêche les utilisateurs non administratifs de modifier accidentellement des fichiers système critiques ou d’exécuter des outils sensibles.

Viewing the default working drive as an admin

3. Exécutez la commande suivante pour changer le lecteur actuel en D: (ou vers n’importe quel lecteur disponible). Cette syntaxe est un moyen rapide de naviguer entre différents lecteurs dans PowerShell.

D:

Lorsque vous changez de lecteur dans PowerShell avec cette méthode, l’invite passe au répertoire racine du nouveau lecteur, comme indiqué dans la sortie ci-dessous.

Comme vous pouvez le voir, quel que soit le répertoire par défaut dans lequel démarre PowerShell, vous pouvez toujours basculer vers un autre lecteur.

Switching to another drive

4. Maintenant, exécutez la commande suivante pour tenter de passer au répertoire D:\Kitty (ou à tout autre sous-répertoire).

D:\Kitty

Avez-vous rencontré la même erreur que celle ci-dessous? Cette erreur apparaît car vous ne pouvez pas passer aux sous-répertoires (par exemple, D:\Kitty) en une seule fois avec cette méthode.

Consultez la section suivante pour voir comment passer aux sous-répertoires.

Attempting to switch to subdirectories

Naviguer dans le système de fichiers via la commande cd

Naviguer à travers plusieurs sous-répertoires est une tâche courante dans PowerShell. Mais existe-t-il un moyen rapide de naviguer à travers différents sous-répertoires? Oui! La commande cd, abréviation de « changer de répertoire », vous permet de passer rapidement à un autre sous-répertoire indépendamment de votre répertoire actuel.

À l’époque, la commande cd était utilisée pour naviguer entre les lecteurs et les répertoires dans l’invite de commande. Microsoft a rendu la commande cd rétrocompatible afin que vous puissiez toujours naviguer entre les répertoires dans PowerShell.

Lisez la suite et découvrez comment naviguer dans votre système de fichiers avec la commande cd.

Déplacement vers un répertoire sur un autre lecteur

Passer à un sous-répertoire sur un autre lecteur peut sembler fastidieux si vous y pensez. Eh bien, pas besoin de trop y réfléchir. Vous serez surpris de voir à quelle vitesse la commande cd vous permet de passer à un autre lecteur tout en accédant à l’un de ses répertoires.

Exécutez la commande ci-dessous pour accéder au sous-répertoire appelé Kitty dans le lecteur D:*.

cd D:\Kitty
Navigating a subdirectory in another drive

Déplacement de plusieurs niveaux vers le haut dans la hiérarchie des répertoires

Avec la gestion du système de fichiers, ou lors de travaux sur un projet, vous pourriez avoir besoin fréquemment de remonter d’un ou deux niveaux depuis votre répertoire actuel. La commande cd prend en charge la notation .. qui vous permet de passer efficacement au répertoire parent de votre répertoire actuel.

Cette fonctionnalité vous permet de remonter d’un niveau dans votre système de fichiers sans spécifier le chemin complet vers le répertoire parent.

1. Exécutez la commande cd ci-dessous, ajoutez un espace et la notation .., indiquant à PowerShell de remonter d’un niveau dans la hiérarchie du répertoire.

L’espace après la commande cd n’est pas nécessaire, car la commande fonctionnera correctement sans. Cependant, ajouter un espace est une pratique courante pour une meilleure lisibilité et cohérence avec d’autres commandes.

cd ..

Dans la sortie ci-dessous, vous pouvez voir que l’invite remonte d’un niveau du C:\Users\admin\Documents vers le répertoire C:\Users\admin. Notez que vous n’avez pas eu à spécifier le chemin complet du C:\Users\admin pour remonter.

Moving up one level in the directory hierarchy

2. Au lieu de monter d’un niveau, exécutez la commande suivante avec deux notations .., en ajoutant une barre oblique inverse (\) à la fin de chacune. Cela vous permet de remonter de deux niveaux dans la hiérarchie du répertoire.

cd ..\..\

Ci-dessous, la sortie montre que vous êtes passé du C:\Users\admin\Documents directement au répertoire C:\Users.

Moving up two levels from the current directory

3. Enfin, exécutez la commande ci-dessous pour vous déplacer vers le répertoire racine de votre lecteur actuel.

Si vous vous êtes perdu dans votre système de fichiers, cette commande est pratique car vous pouvez rapidement sauter au répertoire racine. Cette commande vous évite la peine d’exécuter la commande cd .. plusieurs fois.

cd \
Moving up to the root directory

Déplacement dans un sous-répertoire spécifique

Tout comme le déplacement d’un niveau dans la hiérarchie des répertoires, entrer dans un sous-répertoire spécifique est également une tâche rapide. Comme il peut y avoir de nombreux sous-répertoires, l’ajout de notations comme les précédentes (.. et ..\) ne fonctionnera pas, vous devez spécifier le nom du sous-répertoire.

Exécutez la commande ci-dessous pour entrer dans l’un des sous-répertoires (\admin) de votre répertoire actuel (.).

cd .\admin

Remarquez ci-dessous que vous avez gagné du temps et de l’effort car vous n’avez pas eu à spécifier le chemin complet du C:\Users\admin répertoire.

Moving into one of the subdirectories

Navigation dans le système de fichiers avec des cmdlets PowerShell

Bien que la commande cd fonctionne indubitablement dans PowerShell, Microsoft a introduit de nombreux cmdlets, comme Set-Location, qui vous permettent de naviguer dans votre système de fichiers.

Ces cmdlets fournissent une fonctionnalité plus robuste que la commande cd que vous pouvez utiliser pour basculer entre les lecteurs, naviguer entre les emplacements empilés et parcourir les répertoires dans l’historique de l’emplacement.

Restez à l’écoute et voyez à quel point les puissants cmdlets PowerShell sont pour naviguer dans votre système de fichiers.

Définition d’un emplacement à partir d’un lecteur différent

Comme la commande cd, le Set-Location cmdlet vous permet de passer d’un répertoire à un autre et de naviguer directement vers l’un de ses répertoires. Mais comme vous utilisez une cmdlet PowerShell, vous devez ajouter le paramètre -Path pour définir le chemin de votre emplacement cible.

La cmdlet Set-Location définit le répertoire de travail actuel sur un emplacement spécifié. Cet emplacement spécifié peut être l’un des suivants:

  • A directory, or subdirectory on the local file system.
  • N’importe quel autre emplacement pris en charge par un fournisseur dans PowerShell.
  • Ou un emplacement du registre.

Pour voir comment la cmdlet Set-Location fonctionne en naviguant dans votre système de fichiers:

Exécutez la commande ci-dessous pour accéder au répertoire Kitty dans votre lecteur D: spécifié dans le paramètre -Path.

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

Si vous vous sentez un peu paresseux pour taper la cmdlet complète Set-Location, vous pouvez également utiliser l’un de ses aliases, comme chdir et sl, pour naviguer dans votre système de fichiers. Les alias fournissent un moyen plus pratique d’accéder aux commandes fréquemment utilisées.

Maintenant, exécutez la commande ci-dessous pour définir l’emplacement de travail sur un emplacement de registre spécifique. Dans ce cas, le chemin HKLM:\ (un raccourci) fait référence à la HKEY_LOCAL_MACHINE ruche dans votre Registre Windows.

Cette commande définit l’emplacement de travail à la racine de la ruche HKEY_LOCAL_MACHINE dans le registre. Naviguer dans un registre vous permet d’accéder et de modifier ses sous-clés et valeurs via d’autres commandes PowerShell.

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

Changer entre les emplacements empilés (Pousser et Pop)

Accéder rapidement aux emplacements empilés semble pratique. Mais est-ce possible ? Oui ! Les cmdlets Push-Location et Pop-Location vous permettent de pousser et de dépiler des emplacements dans une pile dernier entré, premier sorti (LIFO) à partir d’une pile nommée.

Pour naviguer entre les emplacements empilés, suivez ces étapes :

1. Exécutez la commande Push-Location ci-dessous pour pousser votre emplacement actuel dans une pile appelée Chemins et définir le répertoire C:\Program Files\PowerShell\ comme répertoire actuel.

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

2. Ensuite, exécutez la commande ci-dessous pour pousser votre emplacement actuel (C:\Program Files\PowerShell\) au sommet de la même pile Chemins.

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

3. Exécutez chaque commande ci-dessous pour définir Chemins comme pile par défaut et afficher (Get-Location) les emplacements empilés.

# Définit la pile Chemins comme pile par défaut
Set-Location -StackName "Paths"
# Affiche tous les chemins empilés dans la pile par défaut
Get-Location -Stack

Ci-dessous, vous pouvez voir que vous avez actuellement deux emplacements empilés, où le dernier emplacement que vous avez ajouté se trouve en haut.

Viewing stacked locations in the Paths stack

4. Maintenant, exécutez la commande suivante Pop-Location deux fois pour dépiler l’emplacement empilé le plus haut de la pile par défaut, qui est actuellement la pile des chemins.

Pop-Location
Changing the current directory by popping stacked locations

Notez que le dépilement de l’emplacement de la pile supprime l’emplacement de la pile. L’erreur ci-dessous indique que vous avez dépilé tous les emplacements empilés de la pile par défaut.

Attempting to view an empty stack

Naviguer vers un répertoire stocké dans une variable

Vous avez exploré différentes façons de naviguer dans les répertoires de votre système de fichiers. Mais que faire si vous devez naviguer fréquemment vers un emplacement spécifique? Saisir des chemins complets plusieurs fois ou parcourir l’historique des emplacements peut être fastidieux. Pourquoi ne pas stocker plutôt le chemin complet d’un répertoire dans une variable?

Avec une variable déclarée, vous pouvez naviguer vers votre répertoire cible sans spécifier le chemin de mémoire.

1. Exécutez les commandes ci-dessous pour stocker le répertoire C:\Program Files\PowerShell\ dans la variable $psh, et définir cet emplacement ($psh) comme répertoire actuel.

# Stocker un chemin de répertoire dans une variable
$psh = 'C:\Program Files\PowerShell\'
# Définir le répertoire de la variable $psh comme répertoire actuel
Set-Location -Path $psh

La sortie ci-dessous confirme le changement de répertoire réussi en utilisant une variable. Peu importe votre répertoire actuel, vous pouvez rapidement naviguer vers le répertoire C:\Program Files\PowerShell\ via la variable $psh.

Mais notez que cette méthode ne fonctionne que pour la session PowerShell en cours à moins que vous ne persistiez la variable, comme démontré dans l’étape suivante.

Navigating to a location stored in a variable

2. Ensuite, exécutez les commandes ci-dessous, qui ne fournissent pas de sortie, mais persistent la variable ev_psh en tant que variable d’environnement (SetEnvironmentVariable) avec la valeur du chemin complet du répertoire.

# Ajouter psh en tant que variable d'environnement
[System.Environment]::SetEnvironmentVariable('ev_psh', 'C:\Program Files\PowerShell\', 'Machine')
# Recharger la variable d'environnement nouvellement ajoutée (ev_psh)
$Env:ev_psh = [System.Environment]::GetEnvironmentVariable("ev_psh","Machine")

3. Enfin, exécutez la commande ci-dessous pour définir la valeur de la variable d’environnement ev_psh comme répertoire courant. Assurez-vous d’être dans un répertoire différent de celui de votre variable ev_psh.

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

Cycler à Travers l’Historique des Répertoires dans l’Historique de Localisation de PowerShell

Un autre moyen rapide de parcourir les répertoires dans PowerShell est d’utiliser l’historique de localisation. Le paramètre -Path indique à la cmdlet Set-Location de naviguer vers un autre répertoire à partir de l’historique de localisation (précédent et suivant), en fonction de la valeur spécifiée (- ou +).

Pour parcourir les répertoires dans l’historique de localisation de PowerShell :

Exécutez les commandes suivantes pour définir les emplacements de l’historique en tant que répertoire courant. Le caractère + vous avance dans l’historique des emplacements, tandis que le caractère - vous ramène en arrière.

# Définit le répertoire racine du système comme répertoire courant 
Set-Location -Path $env:SystemRoot

# Retourne au répertoire précédent dans l'historique (fournisseur de certificats)
Set-Location -Path -

# Retourne une nouvelle fois au répertoire précédent dans l'historique (répertoire racine du système)
Set-Location -Path -

# Avance vers le répertoire de travail suivant dans l'historique (fournisseur de certificats)
Set-Location -Path +

# Avance vers le répertoire de travail suivant dans l'historique (regroupement HKEY_LOCAL_MACHINE)
Set-Location -Path +
Cycling through locations in the location history

Conclusion

La navigation dans le système de fichiers peut être délicate lorsque vos options sont limitées. Mais avec les commandes de changement de répertoire PowerShell, comme Set-Location, vous avez de nombreuses options. La manière dont vous souhaitez naviguer dans votre système de fichiers de manière plus efficace vous appartient entièrement.

De plus, maîtriser l’utilisation de Push-Location et Pop-Location pour enregistrer et rappeler les emplacements récents est une compétence précieuse.

Ces techniques vous permettent de vous déplacer rapidement et sans effort à travers les répertoires et les emplacements dans PowerShell. Mais pour améliorer davantage, pourquoi ne pas envisager d’apprendre des commandes supplémentaires, comme Get-ChildItem, qui peut vous faire gagner beaucoup de temps dans vos tâches quotidiennes?

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