我编写了一个批处理脚本,其中包含各种 %username% 字段。它需要管理员权限才能运行某些命令,但是当我执行此操作时,所有需要管理员运行的 %username% 字段都会更改为管理员的用户名,而不是登录的用户。有什么办法可以更改此设置,使这些字段不发生更改吗?
答案1
您可以将%username%
参数传递给批处理脚本,并在批处理脚本中使用该参数,而不是%username%
假设你的脚本看起来像这样:
echo %username%
echo my name is %username%
pause
你可以把它改成这样:
set SomeVar=%1
echo %SomeVar%
echo my name is %SomeVar%
pause
这将使用传递给脚本的%SomeVar%
第一个参数( )来设置变量。%1
将脚本保存在某处,然后创建非管理员用户桌面的快捷方式。
然后执行以下操作(参见下面的屏幕截图,抱歉,语言为德语)
- 打开快捷方式属性
- 添加
%username%
到目标(这是参数%1
) - 点击
advanced
- 查看
run as admin
- 打
ok
当您现在双击快捷方式并且用户不是管理员时,它将要求输入凭据并使用您的参数运行脚本