CMD 中变量的全名
Full name to variable in CMD
这应该是非常基本的,但我想不通。
我试图将用户的全名设置为一个变量,以便在我的批处理脚本中进一步使用。
我觉得应该是这样的:
SET VAR=NET USER %username% /DOMAIN |查找 /I "Full name";
echo "%VAR%"
NET USER %username% /DOMAIN | FIND /I "Full name" 独立运行,但当我尝试将其设置为变量时却无法运行。
也许这是一个更普遍的问题..
您可以使用临时文件或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.
您可以使用已经指定的 %username% 和 %userdomain%。
键入 set
以获得值列表。
键入 set /?
以获得动态变量列表。
这应该是非常基本的,但我想不通。
我试图将用户的全名设置为一个变量,以便在我的批处理脚本中进一步使用。
我觉得应该是这样的:
SET VAR=NET USER %username% /DOMAIN |查找 /I "Full name"; echo "%VAR%"
NET USER %username% /DOMAIN | FIND /I "Full name" 独立运行,但当我尝试将其设置为变量时却无法运行。
也许这是一个更普遍的问题..
您可以使用临时文件或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.
您可以使用已经指定的 %username% 和 %userdomain%。
键入 set
以获得值列表。
键入 set /?
以获得动态变量列表。