【发布时间】:2022-02-01 10:05:16
【问题描述】:
我有这个脚本,它有 goto getPrivileges,这是没用的,因为它一直在为 UAC 发送垃圾邮件,是否有一个选项可以让你接受 UAC,然后做一件事,如果你不做另一件事?
@echo off
:init
setlocal DisableDelayedExpansion
set "batchPath=%~0"
for %%k in (%0) do set batchName=%%~nk
set "vbsGetPrivileges=%temp%\OEgetPriv_%batchName%.vbs"
setlocal EnableDelayedExpansion
:checkPrivileges
NET FILE 1>NUL 2>NUL
if '%errorlevel%' == '0' ( goto gotPrivileges ) else ( goto getPrivileges )
:getPrivileges
if '%1'=='ELEV' (echo ELEV & shift /1 & goto gotPrivileges)
echo Set UAC = CreateObject^("Shell.Application"^) > "%vbsGetPrivileges%"
echo args = "ELEV " >> "%vbsGetPrivileges%"
echo For Each strArg in WScript.Arguments >> "%vbsGetPrivileges%"
echo args = args ^& strArg ^& " " >> "%vbsGetPrivileges%"
echo Next >> "%vbsGetPrivileges%"
echo UAC.ShellExecute "!batchPath!", args, "", "runas", 1 >> "%vbsGetPrivileges%"
"%SystemRoot%\System32\WScript.exe" "%vbsGetPrivileges%" %*
goto getPrivileges
exit /B
我想要这样的东西。
if %UACError% == 0 echo You clicked yes on UAC!
if %UACError% == 1 echo You clicked no on UAC!
【问题讨论】:
-
尽管您没有明确定义提交代码的问题,以及足够的信息让我们全部复制它,但我们不是在这里提供免费代码或修改。如果你有一些你在别处找到的代码,但它没有做你需要做的事情,那么修改它是你的责任,而不是我们的。本网站的目的是帮助您解决实际代码的可重现问题,而不是其功能。请确保您使用tour,然后通读所有How to Ask,以便更好地了解这里的工作原理。
-
但是这段代码有效,我只需要一个函数来处理你在 uac 中点击的内容
-
我们只帮助您修复不工作的代码,您正在寻找的是有人为您编写代码,而这不是我们在本网站上所做的! 哦,虽然该代码可能对您有用,但我永远不会使用它……
标签: batch-file uac