Powershell执行python:仅重定向打印语句?



Powershell中有没有办法将打印语句从python重定向到一个地方,将return语句重定向到另一个地方?

例如,我正在尝试

$ python myPythonScript.py args >> logFile

我在日志文件中得到打印语句输出(虽然看起来很糟糕,但清理将是下一个工作(

但是,我没有从输出中的 python 获取返回语句值。 如果我使用*>>,我也不会抓住它们

知道发生了什么吗?

蟒蛇示例:

def main(args)
print "This goes to file"
#parse flags...
#do something here...
MyVar = "Please " + "Work"
return MyVar #doesn't go anywhere
if(__name__ == '__main__':
main(sys.argv)

程序(或退出代码(的返回值只能是整数,不能是字符串。

首先,确保返回一个 int,或者在 n 是 int 的地方exit(n)

您可能还希望修复:

if(__name__ == '__main__'):
return main(sys.argv)

然后,可以使用echo %errorlevel%访问 Powershell 中程序(脚本(的返回值

如果你真的希望一个字符串被Powershell使用,你应该:

  1. 在标准输出而不是标准输出上打印日志
  2. 在执行结束时打印标准输出上的文件名
  3. stderr 重定向到您的日志文件,并将 stdout 重定向到 PowerShell 管道|如果你想要重定向 - 或者你可以在括号内执行 Python 脚本$()以便可以在命令行上使用结果

最新更新