Windows <-> WSL 間で環境変数を受け渡しするための環境変数
以下、Windows -> WSL の一方通行の例です
C:\WINDOWS\system32
> setx WSLENV USERPROFILE/pu:WINDIR/pu:APPDATA/pu:COMSPEC/pu:IECL_MAIL/u:IECL_PASS/u:IECL_MAIL_USER/u
APPDATA はなぜか path 変換してくれない
$ 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の中身
#!/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')"
WSL から cmd と叩くと、カレントディレクトリをデスクトップにして cmd.exe を起動する
$ alias cmd='cd "$(wslpath "$APPDATA")/../../Desktop" && $COMSPEC'