【问题标题】:Windows expecting return value from PythonWindows 期望 Python 的返回值
【发布时间】:2015-10-02 03:51:21
【问题描述】:

我有一个 Windows 脚本,它运行一个返回一些值的 Python 脚本。如何从我的 Windows 脚本中的 Python 脚本获取返回值/字符串?

**script1.py**
......
return something


**dosbatch.bat**
......
python script1.py
......

【问题讨论】:

  • 你不能在函数外使用return

标签: windows python-2.7 batch-file cmd


【解决方案1】:

在 Python 脚本中不允许使用 return 而不声明函数。所以,这会引发错误。

但是,您可以使用 print 函数在控制台上获取输出。

但同样,这与 return 值不同,因此您无法将其存储到变量中。

正如进一步提到的,一个值是从一个函数返回的,你可以这样做

for /f %%i in ('python script1.py') do set VAR=%%i

这会将值存储在变量VAR中。

但是,请确保在将其作为脚本运行时确实调用了该函数。这可以通过在if __name__=='__main__': 子句中写入func() 来完成,其中func() 返回您想要的值。

【讨论】:

  • 我的python脚本是一个返回值的函数。有没有办法将返回值放入 DOS 变量中?
  • 感谢您提供更多信息。我正在更新我的答案
  • 我没有从我的函数收到任何返回值。如果我运行一个调用 python 函数脚本的 python 脚本,它可以工作,但是当我从 DOS 批处理中尝试时,它什么也不返回。
  • 如果你的批处理文件中有python script.py,它不会触发返回你期望值的模块内的函数。
【解决方案2】:

%errorlevel% 包含一个进程退出代码。

最好的使用方法是这个

If errorlevel 1 if not errorlevel 2 echo program returned 1
If errorlevel 2 if not errorlevel 3 echo program returned 2

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-10-09
    • 1970-01-01
    • 1970-01-01
    • 2016-11-22
    • 1970-01-01
    相关资源
    最近更新 更多