Windows上的动态用户主目录(更改%HOMEDRIVE%和%HOMEPATH%)

时间:2014-07-26 22:49:05

标签: windows cmd environment-variables portability home-directory

实际问题

如何“重定向”(符号链接?)或暂时更改%HOMEDRIVE%%HOMEPATH%的值(可能基于两个批处理脚本,当我开始在机器上工作时更改值我完成后重置所有内容)?

背景

许多Windows程序选择系统变量%USERPROFILE%%HOMEDRIVE%%HOMEPATH的组合,以便找出用户所需的“主目录”所在的位置使用(例如C:\Users\JohnDoe)。作为便携式应用程序哲学的粉丝(请参阅底部我的意思),我想知道我是否可以以某种方式使我的主目录可移植,即让它指向一个目录便携式设备。或者,换句话说,我想让它“动态变化”。

我尝试了什么

我已经阅读了一些关于SetSetx的内容,并尝试了这一点:

找出当前变量值是什么:

C:\Users\JohnDoe> Set HOME
HOMEDRIVE=C:
HOMEPATH=\Users\<username>

设置它们:

C:\Users\JohnDoe> Setx HOMEDRIVE "d:"
C:\Users\JohnDoe> Setx HOMEPATH "\home"

这会创建HOMEDIRHOMEPATH作为特定于用户的环境变量(请参阅控制面板&gt;&gt;系统&gt;&gt;环境变量)。但是“全球性的”没有改变,例如RStudio将无法识别用户特定的变量(仍然写入C:\Users\JohnDoes\[...])。

C:\Users\JohnDoe> Set HOME
HOMEDRIVE=C:
HOMEPATH=\Users\<username>

便携式应用

例如,请参阅PortableApps.com或简单地认为“只是安装到便携式设备上的软件而不是C:\Program Files\<app-name>”。对于我并不真正关心%HOMEDRIVE%%HOMEPATH%(例如EclipseR)的程序,后者对我有用。

其他一些人(例如Git)只需稍微调整一下(例如,请参阅this post)。

然而其他一些(例如RStudio)实际上平稳地从便携式设备上运行,但是将内容写入用户的“主页”目录。这是我想要在我的便携式设备上使用目录的那种软件。

1 个答案:

答案 0 :(得分:1)

虽然您可以更改环境变量,但这并不适用于所有应用程序,因为Windows中还有一个Shell文件夹API,它提供了各种用户特定的位置。

因此,最好使用实际的Windows方法来更改配置文件。并且这不可能成为移动设备,因为它期望用户的注册数据库具有稳定且可用的位置。

我认为在设置windows(和sysprep)时,可以为} users}文件夹指定一个位置(不同的驱动器)。移动最快的是特殊库文件夹,您可以在Explorer Properties视图中更改它们的位置。