Arquivo .bat não executado após conda ativar py 36

Aug 17 2020

Recebi um arquivo .bat contendo:

call C:\ProgramData\Anaconda3\Scripts\activate.bat
conda activate py36
python C:\Users\User\button5.py
conda deactivate

Se eu executá-lo diretamente da linha de comando, ele funciona, mas quando eu executo o arquivo .bat ele para após conda ativar o py36 sem nenhuma mensagem de erro.

Edit: Eu vejo agora o problema, quando o script é executado no prompt normal ele não funciona, ele funciona apenas no prompt de comando do admin. Mas quando executo o .bat como administrador, o prompt normal é iniciado. Como posso forçar a abertura com o cmd admin?

Respostas

1 WasifHasan Aug 16 2020 at 23:15

Sim, você pode fazer o arquivo em lote se elevar automaticamente:

goto="Batch" /*
:Admin
call C:\ProgramData\Anaconda3\Scripts\activate.bat
conda activate py36
python C:\Users\User\button5.py
conda deactivate
exit /b 0
:RunAsAdmin
color 4f & echo Running Admin Shell, Please wait.... & call cscript //nologo /e:JScript "%~f0" RunAsAdmin "%1" & exit /b
:"Batch"
@echo off & setlocal enabledelayedexpansion & cls
openfiles >nul 2>&1 || goto :RunAsAdmin
goto :Admin
:"JScript" */
function RunAsAdmin(self, arguments) { WSH.CreateObject('Shell.Application').ShellExecute(self, arguments, '', 'runas', 1) }
if (WSH.Arguments.length>=1 && WSH.Arguments(0)=='RunAsAdmin') RunAsAdmin(WSH.ScriptFullName,WSH.Arguments(1));
//

Ele verificará se há privilégios elevados e, se não apresentar, uma caixa de diálogo do UAC para solicitar privilégios administrativos. Outra maneira:

@echo off & powershell.exe -command "& {Start-Process cmd.exe -ArguemntList 'conda activate py36 & python C:\Users\User\button5.py & conda deactivate' -Verb RunAs}"