WSL2 シェルからのエイリアス CMD コマンド

WSL2 シェルからのエイリアス CMD コマンド

Windows 10 で WSL2 を実行していますが、Linux シェルを終了せずにそこから CMD コマンドを実行できるようにしたいと考えています。具体的には、次の操作を実行したいです。

wmic diskdrive get Model,Manufacturer,Size,DeviceID,Status,InterfaceType

WSL2 でこれを実行するにはどうすればよいですか?

答え1

私よりも知識のある人はもっと良い方法を知っているかもしれないし、改善策を提案できるかもしれないが、私が思いついた最も簡単な方法はBashエイリアスを使うことだ。私はlsd(の略)というエイリアスを作成した。lstdデバイスまたはdWSL シェルを離れることなく実行できる .isks というコマンドがあり、CMD 自体でコマンドを実行するのと同じくらい高速です。


WSL シェルから、ホーム フォルダーに移動します。

cd ~

...Windows エクスプローラーで開きます:

explorer.exe .

Sublime Text などのプレーンテキスト エディターでホーム フォルダー内のファイルを開き.bashrc、ファイルの最後に次の行を追加します。

alias lsd="cmd.exe /c '*wmic diskdrive get Model,Manufacturer,Size,DeviceID,Status,InterfaceType'"

lsdこれにより、CMD のインスタンスを実行する と呼ばれるエイリアス (実質的には別のコマンド) が作成され、CMD は終了する前にコマンドを実行します。上記のコマンドを、実行したい CMD コマンドにwmic置き換えることを忘れないでください。wmic

ファイルを保存し.bashrc、次のようにしてシェルに読み込みます。

. ~/.bashrc

その後、他の 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

上で見たように、私のエイリアスの実装には、コマンドが実行直前にパスエラーを返すという致命的ではないバグがありますが、これを解決する方法を見つける時間がありませんでした(フォローアップの質問はこちらいずれにせよ、Windows は問題自体を修正します。つまり、CMD コマンドが通常どおり実行されるのを妨げることはなく、実際に生じる唯一の害は、出力が本来よりも少し醜くなることです。

関連情報