【发布时间】:2016-10-21 13:37:39
【问题描述】:
我在 AutoIt 文件中有以下内容:
#RequireAdmin
Run("start_privileged.bat")
批处理文件包含以下内容:
@echo off
IF "%PROCESSOR_ARCHITECTURE%" EQU "amd64" (
>nul 2>&1 "%SYSTEMROOT%\SysWOW64\cacls.exe" "%SYSTEMROOT%\SysWOW64\config\system"
) ELSE (
>nul 2>&1 "%SYSTEMROOT%\system32\cacls.exe" "%SYSTEMROOT%\system32\config\system"
)
if '%errorlevel%' NEQ '0' (
echo Requesting administrative privileges...
goto UACPrompt
) else ( goto gotAdmin )
:UACPrompt
echo Set UAC = CreateObject^("Shell.Application"^) > "%temp%\getadmin.vbs"
set params = %*:"=""
echo UAC.ShellExecute "cmd.exe", "/c ""%~s0"" %params%", "", "runas", 1 >> "%temp%\getadmin.vbs"
"%temp%\getadmin.vbs"
del "%temp%\getadmin.vbs"
exit /B
:gotAdmin
pushd "%CD%"
CD /D "%~dp0"
我的问题是,如果我执行 AutoIt 脚本,批处理文件会在无限循环中被调用,所以你会癫痫发作。您必须经常按打开 CLI 的“X”,直到打开的窗口关闭。如果我通过双击启动批处理文件,一切正常。
你现在,我必须做什么,所以脚本只打开一次?
提前谢谢你。
【问题讨论】:
标签: batch-file vbscript autoit administrator