【问题标题】:Full name to variable in CMDCMD中变量的全名
【发布时间】:2015-04-07 06:51:42
【问题描述】:

这应该很基本,但我想不通。

我试图将用户的全名设置为一个变量,以便在我的批处理脚本中进一步使用。

我认为应该是这样的:

SET VAR=NET USER %username% /DOMAIN | FIND /I "全名"; 回声“%VAR%”

NET USER %username% /DOMAIN | FIND /I "Full name" 独立工作,但当我尝试将其设置为变量时不起作用。

也许这是一个更普遍的问题..

【问题讨论】:

    标签: windows variables cmd command-prompt


    【解决方案1】:

    您可以使用临时文件或for /f 来实现此目的:

    临时文件解决办法:

    NET USER %username% /DOMAIN | FIND /I "Full name" >tmp.txt
    set /p VAR=<tmp.txt
    echo %VAR%
    del tmp.txt
    

    for /f解决方案:

    for /f "tokens=*" %i in ('NET USER %username% /DOMAIN ^| FIND /I "Full name"') do set VAR=%i
    

    注意:

    • 如果在批处理文件中使用上述命令,请将 % 替换为 %%
    • 使用"tokens=*" 匹配命令输出的所有
    • 使用^ 是因为|(管道)必须是escaped

    【讨论】:

    • 您可以使用"tokens=2*"set VAR=%j 仅存储一行中的名称,例如"Full Name John Doe"
    • 对于临时文件,您可以添加一个:mktemp 子例程,例如SET "TEMPFILE=%TEMP%\%RANDOM%.tmp" IF EXIST "%TEMPFILE%" GOTO :mktemp
    【解决方案2】:

    您可以使用已经指定的 %username% 和 %userdomain%。

    键入 set 以获取值列表。

    输入 set /? 获取动态变量列表。

    【讨论】:

    • Bjorn 想要用户的全名,可以通过解析来自 net user 的输出获得。
    猜你喜欢
    • 1970-01-01
    • 2015-11-27
    • 2017-12-15
    • 2021-02-11
    • 1970-01-01
    • 2016-04-06
    • 1970-01-01
    • 2016-04-03
    • 1970-01-01
    相关资源
    最近更新 更多