#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' }}}