0

实际问题

如何“重定向”(符号链接?)或临时更改和的值%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作为用户特定的环境变量(请参阅控制面板 >> 系统 >> 环境变量)。但是“全局变量”没有改变,例如 RStudio 将无法识别用户特定的变量(仍然写入C:\Users\JohnDoes\[...])。

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

便携式应用程序

例如,请参阅 PortableApps.com 或简单地认为“软件已安装到便携式设备而不是C:\Program Files\<app-name>”。后者对我来说很适合那些不关心%HOMEDRIVE%and的程序%HOMEPATH%(例如EclipseR)。

其他一些(例如Git)只需要稍微调整一下(例如看这篇文章)。

还有一些其他的(例如RStudio)实际上可以在便携式设备上顺利运行,但会将内容写入用户的“主”目录。这就是我想告诉我在我的便携式设备上使用目录的软件。

4

1 回答 1

1

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

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

我认为在设置 Windows(和使用 sysprep)时,可以为 }users} 文件夹(不同的驱动器)指定一个位置。移动最快的是特殊库文件夹,您可以在资源管理器属性视图中更改它们的位置。

于 2014-07-26T23:03:48.273 回答