D'autres personnes plus compétentes que moi connaissent peut-être de meilleures méthodes ou sont en mesure de suggérer des améliorations, mais le moyen le plus simple auquel j'ai pensé pour résoudre ce problème était d'utiliser un alias Bash. J'ai créé un alias appelé lsd
(abréviation de l i s t d evices ou d isks) que je peux exécuter sans jamais devoir quitter le WSL Shell, tout en restant aussi rapide que l'exécution de la commande dans CMD lui-même.
A partir d'un Shell de WSL, naviguez vers votre dossier d'accueil :
cd ~
...et l'ouvrir dans l'Explorateur Windows :
explorer.exe .
Ouvrez le .bashrc
dans votre dossier d'accueil avec un éditeur de texte simple comme Sublime Text, et ajoutez la ligne suivante au bas du fichier :
alias lsd="cmd.exe /c '*wmic diskdrive get Model,Manufacturer,Size,DeviceID,Status,InterfaceType'"
Cela crée un alias (une autre commande, à toutes fins utiles) appelé lsd
qui exécute une instance de CMD, qui exécute la commande wmic
avant de se terminer. N'oubliez pas de remplacer wmic
ci-dessus avec la commande CMD que vous voulez exécuter.
Sauvegarder le .bashrc
puis le charger dans le Shell en faisant :
. ~/.bashrc
Vous pouvez alors simplement exécuter l'alias comme toute autre commande WSL :
$ lsd
'\\wsl$\Ubuntu-18.04\home\user'
CMD.EXE was started with the above path as the current directory.
UNC paths are not supported. Defaulting to Windows directory.
DeviceID InterfaceType Manufacturer Model Size Status
\\.\PHYSICALDRIVE0 IDE (Standard disk drives) WDC WD10PURX-64E5EY0 1000202273280 OK
\\.\PHYSICALDRIVE4 IDE (Standard disk drives) WDC WD30EZRZ-00GXCB0 3000590369280 OK
\\.\PHYSICALDRIVE2 IDE (Standard disk drives) CT250MX500SSD1 250056737280 OK
\\.\PHYSICALDRIVE6 USB (Standard disk drives) Seagate GoFlex Desk USB Device 3000582144000 OK
\\.\PHYSICALDRIVE1 IDE (Standard disk drives) KINGSTON SV200S3128G 128034708480 OK
\\.\PHYSICALDRIVE3 IDE (Standard disk drives) ST2000DM001-9YN164 2000396321280 OK
\\.\PHYSICALDRIVE5 USB (Standard disk drives) Kingston DataTraveler 3.0 USB Device 15471751680 OK
Comme on l'a vu plus haut, mon implémentation de l'alias est accompagnée d'un bogue non fatal : la commande renvoie une erreur de chemin juste avant de s'exécuter, mais je n'ai pas eu le temps de trouver comment résoudre ce problème ( question de suivi ici ). Quoi qu'il en soit, Windows corrige lui-même le problème, ce qui signifie qu'il n'empêche pas la commande CMD de s'exécuter normalement et que le seul tort réel qu'il cause est de rendre la sortie un peu plus moche qu'elle ne devrait l'être.