嗨,我制作了一个需要以管理员身份运行的批处理文件。为此,我使用了从这里(StackOverflow) 获取的这个脚本。
但我想要的是,如果用户选择不以管理员身份运行(单击否到 UAC),那么程序将退出,批处理将自动删除它。
批处理文件自行删除的命令是“del %0”,但我需要有关此脚本中何处的帮助,我可以放置此命令。我尝试将它与“@exit /B”一起使用,但是如果您按 YES 或 NO 到 UAC,批处理文件将被删除,然后批处理文件的其余部分无法执行
当用户对 UAC 按下“NO”时,任何人都可以帮助弄清楚如何只运行命令“del %0”?
@echo off
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (shift & goto gotPrivileges)
setlocal DisableDelayedExpansion
set "batchPath=%~0"
setlocal EnableDelayedExpansion
ECHO Set UAC = CreateObject^("Shell.Application"^) > "%temp%\OEgetPrivileges.vbs"
ECHO UAC.ShellExecute "!batchPath!", "ELEV", "", "runas", 1 >> "%temp%\OEgetPrivileges.vbs"
"%temp%\OEgetPrivileges.vbs"
@exit /B
:gotPrivileges
谢谢你们 符文