在一天的大部分时间里都在努力寻找解决方案。总之,我的困境似乎很简单。基于谷歌和Stackoverflow在这一点上的点击,一个有效的解决方案似乎难以捉摸。
(编辑) 我需要澄清用例。我们可能有6个用户需要运行某些使用“
%USERNAME%
”字符串的脚本来登录区分大小写的环境,Linux,MySQL等。一个用户名是混合大小写的。在这个例子中,我使用了我的名字:“Will”,它必须是脚本:“will”(全部为小写)。
- 一般的问题是%USERNAME%环境变量值在错误输入时如何变化?
目前我的Windows 7 Professional用户名是“will”,但环境变量具有以下值:
echo. User = %USERNAME%
User = Will
我需要它出来:
User = will
rem * All lower-case
要清楚......
我想更改(源)值Windows在我登录时设置USERNAME环境变量。
我认为很容易找到设置或配置选项来更改该字符串 - 直到我尝试。我认为这必须经常发生在与让USERNAME一起使用cygwin等相关的问题上。
这个问题
也困扰我,因为这是一个混乱的脚本来“修复”登录环境中的基本内容。
我也在办公室做了快速调查。有些人有混合案例,有一两个人有小写。这似乎是随意的,取决于创建帐户时输入的内容或其他内容。
我们的管理员在域上查找我的帐户(不,不是活动目录),并且与我的登录屏幕相同,“将”(小写)。
最后我做了几个实验。我在“用户”控制面板中更改了用户名
from: "will" to "xxwill"
认为肯定会更新我的USERNAME字符串。我退出了。我再次做了,然后重新启动了第二次。结果非常令人惊讶(或者可能不应该):
User = Will
rem * NO change for the "xxwill" name-change!
更进一步。我创建了一个帐户“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
也许这可能有所帮助。因人而异。