启动Anaconda并通过BAT执行Python计算

启动Anaconda并通过BAT执行Python计算,python,batch-file,anaconda,Python,Batch File,Anaconda,Python脚本在很多方面都很好,但有时我只需要打开一个命令行并进行基本计算。如果每次我需要计算一些简单的东西时,不必运行Anaconda,然后启动Python,然后导入数学包,然后定义基本常量(例如,Na=6.022e23),那就太好了 因此,我尝试编写一个批处理文件来运行Anaconda、启动Python、导入数学包和定义常量。BAT代码中的这些行将从Anaconda和Python开始: call C:\Users\Chris\Miniconda3\Scripts\activate.bat

Python脚本在很多方面都很好,但有时我只需要打开一个命令行并进行基本计算。如果每次我需要计算一些简单的东西时,不必运行Anaconda,然后启动Python,然后导入数学包,然后定义基本常量(例如,
Na=6.022e23
),那就太好了

因此,我尝试编写一个批处理文件来运行Anaconda、启动Python、导入数学包和定义常量。BAT代码中的这些行将从Anaconda和Python开始:

call C:\Users\Chris\Miniconda3\Scripts\activate.bat C:\Users\Chris\Miniconda3
python
不幸的是,我在BAT代码中在此之后添加的任何行都将被忽略。如果有任何建议能使这项工作顺利进行,我将不胜感激

@echo off
rem = """
:: From here and on, write any Batch file syntax and it will be ignored by Python
:: 
:: The Batchography book by Elias Bachaalany
::
python -x "%~f0" %*
exit /b %errorlevel%
:: End of batch file commands
"""
# Anything here is interpreted by Python
import platform
import sys
print("Hello world from Python %s!\n" % platform.python_version())
print("The passed arguments are: %s" % sys.argv[1:])
@echo关闭
调用“C:\Users\Chris\Miniconda3\Scripts\activate.bat”“C:\Users\Chris\Miniconda3”
python-i-c“导入数学;Na=6.022e23”
如果Python代码是紧凑的,那么此代码可能适合您的需要。它将导入,并将常量作为参数分配给Python。使用
以分隔Python代码行而不是换行符

-i
将进入检查模式,
-c
允许Python代码作为以下参数

基于Michael Villani的:

@echo关闭
rem=r''
::从此处开始,编写任何批处理文件语法,Python将忽略它
::
::伊莱亚斯·巴查拉尼的著作
::
调用“C:\Users\Chris\Miniconda3\Scripts\activate.bat”“C:\Users\Chris\Miniconda3”
python-ix“%~f0”%*
退出/b
::批处理文件命令的结束
'''
#这里的任何内容都是由Python解释的
德尔雷
输入数学
Na=6.022e23
建议使用原始字符串文字,以便批处理文件代码不需要转义
\

这两个概念都会在Python代码执行后导致检查模式
-i
。使用
exit()
quit()
退出检查模式

因此,您可以使用交互式提示输入您的数学

>>Na
6.022e+23
>>> 3+2
5.
>>>

查看Michael Villani在该线程上的回答如果要运行另一个命令,在关闭python可执行文件之前,请尝试
start
。e、 g.
启动python
。请打开命令提示窗口并输入
start/?
以阅读其帮助信息。谢谢,@Dhruv。不幸的是,这段代码没有提供我所需要的,这是一个开放终端(Python已经启动,一些Python行已经运行),我可以使用它来做基本的数学运算。当我尝试将上述代码放入批处理文件时,生成的窗口立即关闭。