在挣扎了一天的大部分时间后,我正在为此寻找解决方案。总之,我的困境似乎很简单。基于 Google 和 Stackoverflow 上我对这个的点击,一个有效的解决方案似乎难以捉摸。
(EDIT)
I need to clarify the use-case. We may have 6 users needing to run certain scripts that use the "%USERNAME%
" string to login to case-sensitive environments, Linux, MySQL, etc. One user-name is mixed-case. In the example I used my name: "Will" for the scripts it must-be: "will" (all lower-case).
- The general question though is how can the %USERNAME% environment variable value be change when it is mis-entered?
目前我的 Windows 7 Professional 用户名是“will”,但环境变量有这个值:
echo. User = %USERNAME%
User = Will
我需要它出来: User = will
rem * All lower-case
要清楚...I want to change (source) value Windows sets the USERNAME environment variable when I login.
我认为很容易找到更改该字符串的设置或配置选项——直到我尝试过。我认为这必须经常发生,从与让 USERNAME 与 cygwin 等相关的问题来看。
问题
也困扰着我,因为这是一个凌乱的脚本,可以在登录环境中“修复”一些基本的东西。
我也在办公室周围做了一个快速调查。有些人大小写混合,一两个小写。根据创建帐户时输入的内容或其他内容,这似乎是任意的。
我们的管理员在域(不,不是事件目录)上查找了我的帐户,并且与我的登录屏幕“will”(小写)相同。
最后我做了几个实验。我在用户控制面板中更改了我的用户名
from: "will" to "xxwill"
认为这肯定会更新我的 USERNAME 字符串。我登出。我又做了一次,并重新启动了第二次。结果非常令人惊讶(或者它不应该是): User = Will
rem * NO change for the "xxwill" name-change!
一些进一步的 Cereal 。我创建了一个帐户“dodo”和帐户“Dogdo”,并将用户名分别更改为“Dodo”和“dogdo”。 User = dodo
User = Dogdo
rem * NO change for name-changes!
我看到无法以这种方式更改 USERNAME。我无法在高级选项中编辑系统环境变量。它可能在配置文件中。但是,您是否可以仅使用管理员权限来编辑配置文件甚至查看其中的内容?我还不知道;我不确定这是否是我的首选路线,因为它在某处使用某些原始设置的一些“输出”进行了黑客攻击。我希望有人能让我直截了当,这样我就不需要那个脚本解决方案了。
最佳答案
@ECHO OFF
SETLOCAL
PUSHD "%temp%"
COPY NUL "%username%" >NUL 2>NUL
FOR /f "delims=" %%a IN ('dir /L /b "%username%"') DO set "usernamelc=%%a"
del "%username%" >NUL 2>NUL
POPD
ECHO %USERNAME% --^> %usernamelc%
GOTO :EOF
也许这可能会有所帮助。天啊。
关于windows - 如何更改 windows USERNAME 环境变量字符串?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36428173/