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