El archivo .bat no se ejecuta después de que conda active py36

Aug 17 2020

Tengo un archivo .bat que contiene:

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

Si lo ejecuto directamente desde la línea de comandos, funciona, pero cuando ejecuto el archivo .bat, se detiene después de que conda active py36 sin mensaje de error.

Editar: ahora veo el problema, cuando el script se ejecuta en el símbolo del sistema normal, no funciona, solo funciona en el símbolo del sistema de administración. Pero cuando ejecuto el .bat como administrador, se inicia el indicador normal. ¿Cómo puedo forzar su apertura con admin cmd?

Respuestas

1 WasifHasan Aug 16 2020 at 23:15

Sí, puede hacer que el archivo por lotes se eleve automáticamente:

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));
//

Verificará si hay privilegios elevados y, si no presenta un cuadro de diálogo UAC, se solicitará privilegios administrativos. De otra manera:

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