#author("2022-01-12T23:03:37+09:00","default:nobuoki","nobuoki")
#author("2022-01-12T23:04:40+09:00","default:nobuoki","nobuoki")
* WSLENVとは [#hf2573d5]

Windows <-> WSL 間で環境変数を受け渡しするための環境変数

- [[WSL その128 - Windowsの環境変数とLinuxの環境変数を相互に引き継ぎ可能に - kledgeb>https://kledgeb.blogspot.com/2017/12/wsl-128-windowslinux.html]]

以下、Windows -> WSL の一方通行の例です

* Windows側からこんな感じで送り込む [#ac5b83f9]

#prism(batch){{{
C:\WINDOWS\system32
> setx WSLENV USERPROFILE/pu:WINDIR/pu:APPDATA/pu:COMSPEC/pu:IECL_MAIL/u:IECL_PASS/u:IECL_MAIL_USER/u
> setx WSLENV USERPROFILE/pu:WINDIR/pu:APPDATA/pu:COMSPEC/pu
}}}

* WSL側ではこう見える [#qc237e6e]

APPDATA はなぜか path 変換してくれない

#prism(bash){{{
$ wslenv
IECL_MAIL=oki.nobuhiro@iecl.ntt.co.jp
WINDIR=/mnt/c/WINDOWS
USERPROFILE=/mnt/c/Users/1000202334
IECL_PASS=Musashino09F
APPDATA=C:\Users\1000202334\AppData\Roaming
IECL_MAIL_USER=oki.nobuhiro
COMSPEC=/mnt/c/WINDOWS/system32/cmd.exe
WSLENV=USERPROFILE/pu:WINDIR/pu:APPDATA/pu:COMSPEC/pu:IECL_MAIL/u:IECL_PASS/u:IECL_MAIL_USER/u
}}}

wslenvの中身

#prism(bash){{{
#!/bin/sh
# vim: set ft=sh ff=unix expandtab ts=2 sw=2 :

[ -n "$DEBUG" ] && set -x
set -e

# print WSLENV

env | grep -E "$(echo "$WSLENV" | sed -e 's;/[pluw]*;;g' -e 's/:/|/g' -e 's/^/(/;s/$/)/g')"
}}}

* おまけ [#bfeb084d]

WSL から cmd と叩くと、カレントディレクトリをデスクトップにして cmd.exe を起動する

#prism(bash){{{
$ alias cmd='cd "$(wslpath "$APPDATA")/../../Desktop" && $COMSPEC'
}}}

トップ   編集 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS