DrvFs%UserProfile%的位置

时间:2017-07-07 13:14:41

标签: bash path environment-variables windows-subsystem-for-linux

从适用于Linux的Windows子系统中,如何获取指向Windows个性中%UserProfile%内容的DrvFs路径?我见过Access Windows Environment Variables from within Bash in WSL。它似乎涉及获取一个环境变量,并且需要在%UserProfile%内对$LXSS_ROOT内的某些内容进行硬编码(w3wp.exe)。

2 个答案:

答案 0 :(得分:1)

这似乎有效:

win_userprofile="$(cmd.exe /c "<nul set /p=%UserProfile%" 2>/dev/null)"

win_userprofile_drive="${win_userprofile%%:*}:"
userprofile_mount="$(findmnt --noheadings --first-only --output TARGET "$win_userprofile_drive")"

win_userprofile_dir="${win_userprofile#*:}"

userprofile="${userprofile_mount}${win_userprofile_dir//\\//}"

感谢Microsoft的Craig Loewen让我入门。

答案 1 :(得分:1)

幸运的是,由于Windows 10内部版本17063(包括在Windows 10 1803中),在Windows和WSL(WSLENV)之间共享环境变量的方法更加简单。

要使%USERPROFILE%在WSL中可访问,请在WSLENV变量中列出该变量。如果您尚未使用WSLENV,则只需在Windows中运行一次即可:

setx WSLENV USERPROFILE/up

这将导致将Windows路径转换为Unix格式的WSL shell中的%USERPROFILE%从Windows访问。如果您不想转换路径,只需省略$USERPROFILE

p

更多详细信息:


我在setx WSLENV USERPROFILE/u 函数中使用该变量(从CD到Windows路径)。我在cdw中定义了它,它在Ubuntu中会自动执行:

~/.bash_aliases