【问题标题】:Dynamic user home directory on Windows (changing %HOMEDRIVE% and %HOMEPATH%)Windows 上的动态用户主目录(更改 %HOMEDRIVE% 和 %HOMEPATH%)
【发布时间】:2014-07-26 22:49:05
【问题描述】:

实际问题

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

背景

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

我尝试了什么

我读过一些关于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\&lt;app-name&gt; 的软件”。对于那些不关心%HOMEDRIVE%%HOMEPATH%(例如EclipseR)的程序,后者对我来说是一种享受。

其他一些(例如Git)只需要稍微调整一下(例如参见this post)。

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

【问题讨论】:

  • 您可以使用set 更改当前命令shell 的环境变量并从该shell 启动应用程序。但当然,这只有在应用程序实际查看环境变量时才有效(它不应该,但有些人会这样做)。
  • 好的,谢谢!这可能至少是一种选择。

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


【解决方案1】:

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

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

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

【讨论】:

  • 好的,感谢您的澄清!不过,您提到了一些我还不熟悉的事情:我将如何更改个人资料以及您指的是哪些特殊的库文件夹?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2016-08-02
  • 2010-10-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多