2011-06-15 127 views
0

我需要在Windows上永久设置%username%变量是可能的吗?在windows中设置永久变量%username%

我的意思是如果我在命令提示符上设置username = UPPERCASE我可以看到该变量已更改,但正如预期的那样,只是在该命令提示符下工作,如果我打开另一个用户名变量是原始的。

我试图找到对应的注册表值,但我没有找到它。

我需要一些自动的方式来做到这一点。

谢谢!

+0

为什么你需要这样做? – 2011-06-15 17:59:20

+0

有一个应用程序“腻子”,从环境中采取用户名,问题是,对于窗户案件没有意义,而对于其他环境它没有。所以我只是想在任何情况下把用户名改成大写的logonscript,即使用户把他的用户名改为小写。 – Kerby82 2011-06-15 18:01:35

+0

它必须是USERNAME吗?它可以是像'Putty_USERNAME'这样的不同的环境变量吗? – 2011-06-15 18:13:58

回答

0

当每个进程启动时,进程获得父进程的环境变量的副本。所以,如果你使用Windows资源管理器来启动命令提示符。您会得到Explorer.exe环境变量的副本,但是当您在cmd.exe中编辑它时,不会编辑系统其余部分的值。

也就是说,Windows提供了一个进程可以订阅的事件,以便他们可以被告知环境变量有一个新的值。如果你有兴趣,我可以尝试挖掘它。我之前使用过它用于Path环境变量,并认为它可能适用于您的问题。

听起来像你应该创建一个bat文件。这将提示用户输入用户名,并将其放入%USERNAME%环境变量中。

SET /p USERNAME=What is your UserName? 
putty /user:%username% 
+0

我很感兴趣,你可以挖掘吗?或给我任何建议?我真的很感激这一点。在此先感谢 – Kerby82 2011-06-15 18:05:08

+0

我建议另一种选择,但我找不到一种方法来简单地将%用户名%更低。 – 2011-06-15 18:06:54

+0

http://support.microsoft.com/?kbid=104011显示如何通知环境更改。但是,我不知道如何设置用户名。 – 2011-06-15 18:10:47