windows - 如何更改 windows USERNAME 环境变量字符串?

标签 windows cmd environment-variables

在挣扎了一天的大部分时间后,我正在为此寻找解决方案。总之,我的困境似乎很简单。基于 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 等相关的问题来看。
问题
  • How to convert the value of %USERNAME% to lowercase within a Windows batch script?

  • 也困扰着我,因为这是一个凌乱的脚本,可以在登录环境中“修复”一些基本的东西。
    我也在办公室周围做了一个快速调查。有些人大小写混合,一两个小写。根据创建帐户时输入的内容或其他内容,这似乎是任意的。
    我们的管理员在域(不,不是事件目录)上查找了我的帐户,并且与我的登录屏幕“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/

    相关文章:

    c# - 如何在 C# 中的 AWS Lambda 项目中设置和获取环境变量

    bash - __git_ps1 在使用 Bash su 用户名时找不到

    linux - Makefile 中的 $${HOME} 或 ${HOME}?

    windows - 从存储引擎 mysql 得到错误 22

    c++ - 如何使用两个参数获得 memfun

    windows - 带有变量的目录中的 mysqldump 空间

    windows - 以管理员身份执行时如何在批处理文件中捕获 powershell 脚本的错误级别

    c++ - 如何在 Windows 中检测显示器是否为宽屏

    php - windows - php_memcache.dll - 适用于 PHP 5.4

    java.exe 未被识别为内部或外部命令