2016-10-21 4 views
1

Я следующее содержание в AutoIt файле:Пакетный скрипт выполняется из 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, командный файл вызывается в бесконечном цикле, чтобы вы получили эпилептическую атаку. Вы часто нажимаете «X» открывающей CLI, пока закрывающиеся окна не закрываются. Если я запускаю командный файл, просто дважды щелкнув его, все будет хорошо.

Вы сейчас, что мне нужно сделать, чтобы сценарии открывались только один раз?

Заранее спасибо.

ответ

0

Сценарий запроса прав администратора от OP имеет известные проблемы и устарел.

Используйте этот скрипт вместо этого, он в настоящее время работает без известных ошибок:

How to request Administrator access inside a batch file

НО:

Чтобы получить права администратора, любой пакетный сценарий должен запустить другой самостоятельно созданный сценарий, так он может не работать с AutoIT. Но попробуй и дай мне знать!

0

Добрый день Марсель,

Попробуйте добавить команду EXIT в конец вашего AutoIt скрипт. В настоящее время я не на рабочем компьютере, поэтому у меня нет доступа к администратору, чтобы проверить его.

#RequireAdmin 
Run("start_privileged.bat") 
EXIT 

Как просто, как это звучит, он должен прекратить скрипт AutoIt после он запрашивает права администратора и запускает пакетный файл. Если у вас все еще есть проблемы, сообщите мне. Я уверен, что мы можем придумать что-то, чтобы сделать то, что вы хотели бы сделать.

Спасибо,

Tim

 Смежные вопросы

  • Нет связанных вопросов^_^