.bat फ़ाइल conda सक्रिय py36 के बाद निष्पादित नहीं की गई
मुझे एक .bat फ़ाइल मिली है:
call C:\ProgramData\Anaconda3\Scripts\activate.bat
conda activate py36
python C:\Users\User\button5.py
conda deactivate
अगर मैं इसे सीधे कमांड लाइन से चलाता हूं तो यह काम करता है, लेकिन वेन मैं निष्पादित करता हूं। कोई त्रुटि संदेश के साथ कोंडा py36 को सक्रिय करने के बाद यह बंद हो जाती है।
संपादित करें: मुझे अब समस्या दिखाई देती है, जब स्क्रिप्ट को सामान्य प्रॉम्प्ट में निष्पादित किया जाता है, तो यह काम नहीं करता है, यह केवल व्यवस्थापक कमांड प्रॉम्प्ट में काम करता है। लेकिन जब मैं .bat को व्यवस्थापक के रूप में चलाता हूं तो सामान्य प्रॉम्प्ट प्रारंभ होता है। मैं इसे व्यवस्थापक cmd के साथ खोलने के लिए कैसे बाध्य कर सकता हूं?
जवाब
हाँ आप बैच फ़ाइल को ऑटो-एलिवेट कर सकते हैं:
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));
//
यह एलिवेटेड प्राइवेटिलिजेस के लिए जाँच करेगा, और अगर प्रशासनिक प्रिविलेज के लिए संकेत देने के लिए यूएसी संवाद प्रस्तुत नहीं करता है। दूसरा रास्ता:
@echo off & powershell.exe -command "& {Start-Process cmd.exe -ArguemntList 'conda activate py36 & python C:\Users\User\button5.py & conda deactivate' -Verb RunAs}"