Fichier .bat non exécuté après l'activation de conda py36

Aug 17 2020

J'ai un fichier .bat contenant:

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

Si je l'exécute directement à partir de la ligne de commande, cela fonctionne, mais lorsque j'exécute le fichier .bat, il s'arrête après l'activation de conda py36 sans message d'erreur.

Edit: Je vois maintenant le problème, lorsque le script est exécuté à l'invite normale, il ne fonctionne pas, cela ne fonctionne que dans l'invite de commande d'administration. Mais lorsque j'exécute le .bat en tant qu'administrateur, l'invite normale démarre. Comment puis-je le forcer à s'ouvrir avec admin cmd?

Réponses

1 WasifHasan Aug 16 2020 at 23:15

Oui, vous pouvez faire monter automatiquement le fichier de commandes:

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

Il vérifiera les privilèges élevés et, si ce n'est pas le cas, présentera une boîte de dialogue UAC pour demander des privilèges administratifs. Autrement:

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