![批处理脚本-以管理员身份运行更改%用户名%参数](https://linux22.com/image/1572269/%E6%89%B9%E5%A4%84%E7%90%86%E8%84%9A%E6%9C%AC-%E4%BB%A5%E7%AE%A1%E7%90%86%E5%91%98%E8%BA%AB%E4%BB%BD%E8%BF%90%E8%A1%8C%E6%9B%B4%E6%94%B9%EF%BC%85%E7%94%A8%E6%88%B7%E5%90%8D%EF%BC%85%E5%8F%82%E6%95%B0.png)
我编写了一个批处理脚本,其中包含各种 %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
当您现在双击快捷方式并且用户不是管理员时,它将要求输入凭据并使用您的参数运行脚本