高品質パソコン バッテリーを販売します, 全く新しい商品を保障できます, 人気バッテリーを購入すれば、30%の割引を楽しみます, 即日発送,すべてのノートPCバッテリーは1年の保障があるから、ご安心して購入してください。 denchiya.org バッテリー専門店!


Windows 10とWSLの相互運用性を高める新たな環境変数「WSLENV」 - 阿久津良和のWindows Weekly Report

2018年01月23日 17:26

Windows 10の次期大型アップデートとなるRS4(RedStoen 4: 開発コード名)では、WSL(Windows Subsystem for Linux)とWindows 10の相互運用性が大きく高まるようだ。

執筆時点のWindows 10 Insider Previewの最新ビルド17074.1002だが、2017年12月にリリースしたビルド17063から、新たな環境変数「WSLENV」が加わった。同時期に公式ブログで、これに関する概要が明らかとなったがなかなか興味深い。

WSLENVは、Windows 10のコマンドプロンプト/Windows PowerShellからWSLプロセスを起動、もしくはその逆の操作を行う際に参照し、「C:\Users\kaz」を「/mnt/c/Users/kaz」へ変換、もしくはその逆変換を実現するものだ。

環境変数は、CUIからコマンドを実行する際の設定やOS上でデータを共有する際に用いられてきた。有名どころを挙げれば、コマンド検索を行う環境変数「PATH」だろう。

  • Windows 10で定義済みの環境変数群。PATHやPATHEXTでコマンドライン環境の使い勝手を継承している

例えばWindows 10でコマンドプロンプトを起動し、Robocopy.exeを実行するとしよう。ユーザー権限でコマンドプロンプトを起動するとカレントディレクトリ(フォルダ)は環境変数「USERPROFILE」で定義したフォルダとなるが、%SystemRoot%\System32\Robocopy.exeを起動するにはフルパスで記述しなければならない。このパスを省略して実行できるのは、PATHの値に%SystemRoot%\System32フォルダーを含んでいるからだ。

WSLENVのメリットはどこにある?

さて、WSLENVのメリットを考えたい。WSLENVには環境変数を引き継ぐ際にパスを変換するフラグ「/p」、区切り文字を用いたパスを変換して引き継ぐ「/l」、コマンドプロンプトからWSLへ環境変数を引き継ぐ「/u」とパスの変換を行う「/up」、WSLからコマンドプロンプトへ環境変数を引き継ぐ「/w」の5つが用意されている。

  • フラグ「/p」の使用例。環境変数TESTを定義し、WSLENVに同フラグを付けて代入する。その上でコマンドプロンプトを起動すると、環境変数TESTのパスがWindows型に変換して継承されたことが分かる
  • フラグ「/l」の使用例。同じく環境変数TESTを定義するが、ここでの区切り文字は「:(コロン)」を使用する。コマンドプロンプトを起動すると、区切り文字が「;(セミコロン)」に、パスをWindows型に変換・継承
  • フラグ「/u」の使用例。コマンドプロンプト上で環境変数TESTを定義し、WSLENVに同フラグを付けて代入する。その上でWSLを起動すると、環境変数TESTが継承されたことと、パスが変換されていないことを確認できる
  • フラグ「/up」を使用した場合、パスの自動変換が加わる
  • フラグ「/w」の使用例。WSL上で環境変数TESTを定義し、WSLENVに同フラグを付けて代入してコマンドプロンプトを起動すると、そのまま文字列を継承できる

Microsoftの説明に沿ってWSLの動作を検証したものだが、ご覧のとおりフラグ「/p」などを使えば、デスクトップへのパスが自動的に変換されるため、バッチファイルやシェルスクリプトを実行する際にパスの扱い方を意識する必要がなくなる。

 

FUJITSU 充電池 SQU-816 916T2079F 4400mAh/48WH 11.1V

ACER 充電池 AL12A32 4ICR17/65 2600mah 14.8V

ACER 充電池 AL12A32 4ICR17/65 5200mah 10.8V

FUJITSU 充電池 FPCBP342 24WH/220mAh 10.8V

BOSE 充電池 404600 2300mah 11.1V/12.4v

ASUS 充電池 C11P1502 4750mAh 3.8V

TOSHIBA 充電池 PA5162U-1BRS 5600mah 10.8V

TOSHIBA 充電池 PA5163U-1BRS 8100mah/93WH 10.8V

—————

戻る