Python脚本到批处理文件

daw*_*ife 2 python windows batch-file

我有一个运行python脚本的批处理文件.我正在运行Python 3.2.我想从python脚本中将变量(如整数或字符串)发送回批处理文件,这可能吗?

我知道我可以接受Python脚本中的命令行参数sys.argv.希望有一些功能允许我做相反的事情.

bpg*_*rgo 14

在Python脚本中,只需写入标准输出: sys.stdout.write(...)

我不确定你使用的脚本语言,也许你可以详细说明,现在我假设你正在使用bash(unix shell).因此,在批处理脚本中,您可以将python脚本的输出转换为如下变量:

#run the script and store the output into $val
val = `python your_python_script.py`
#print $val
echo $val
Run Code Online (Sandbox Code Playgroud)

编辑结果证明,它是Windows批处理

python your_python_script.py > tmpFile 
set /p myvar= < tmpFile 
del tmpFile 
echo %myvar%
Run Code Online (Sandbox Code Playgroud)

  • 是的,因为很自然地假设有人在Windows上使用bash编写批处理文件... (3认同)
  • 给你一个赞成你后半部分的答案.这些人是你的原因是因为它显而易见,只是从问题的名称......它们在*nix系统上不被称为批处理文件.;) (2认同)
  • 这正是我一直在寻找的答案,所有其他答案都未能提出。谢谢!我想能够获得退出值仍然很酷,但不如您的答案提供的那么强大。 (2认同)

mat*_*ata 5

如果 aint对你来说足够了,那么你可以使用

sys.exit(value)
Run Code Online (Sandbox Code Playgroud)

在你的 python 脚本中。退出应用程序的状态代码为value

在您的批处理文件中,您可以将其作为%errorlevel%环境变量读取。