ไฟล์. bat ไม่ทำงานหลังจาก conda เปิดใช้งาน py36
Aug 17 2020
ฉันได้รับไฟล์. bat ที่มี:
call C:\ProgramData\Anaconda3\Scripts\activate.bat
conda activate py36
python C:\Users\User\button5.py
conda deactivate
หากฉันเรียกใช้โดยตรงจากบรรทัดคำสั่งมันใช้งานได้ แต่เมื่อฉันรันไฟล์. bat มันจะหยุดหลังจาก conda เปิดใช้งาน py36 โดยไม่มีข้อความแสดงข้อผิดพลาด
แก้ไข: ตอนนี้ฉันเห็นปัญหาเมื่อสคริปต์ถูกเรียกใช้ในพรอมต์ปกติมันไม่ทำงานมันทำงานได้เฉพาะในพรอมต์คำสั่งของผู้ดูแลระบบ แต่เมื่อฉันเรียกใช้. bat ในฐานะผู้ดูแลระบบพรอมต์ปกติจะเริ่มขึ้น ฉันจะบังคับให้เปิดด้วย admin cmd ได้อย่างไร
คำตอบ
1 WasifHasan Aug 16 2020 at 23:15
ใช่คุณสามารถทำให้ไฟล์แบตช์ยกระดับอัตโนมัติได้:
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));
//
ระบบจะตรวจสอบสิทธิ์ระดับสูงและหากไม่มีกล่องโต้ตอบ UAC สำหรับการแจ้งเตือนสำหรับสิทธิ์การดูแลระบบ อีกวิธีหนึ่ง:
@echo off & powershell.exe -command "& {Start-Process cmd.exe -ArguemntList 'conda activate py36 & python C:\Users\User\button5.py & conda deactivate' -Verb RunAs}"