在 bash 中,我们可以:
python - << EOF
import os
print 'hello'
EOF
在 bash 脚本中嵌入 python 代码片段。
但在 Windows 批处理中,这不起作用 - 虽然我仍然可以使用 python -c 但这需要我将我的代码合并成一行,这是我试图避免的事情。
有没有办法在批处理脚本中实现这一点?
谢谢。
最佳答案
您可以使用混合技术,此解决方案也适用于 python 导入。
1>2# : ^
'''
@echo off
echo normal
echo batch code
echo Switch to python
python "%~f0"
exit /b
rem ^
'''
print "This is Python code"
批处理代码在多行字符串 '''
中,因此这对 python 是不可见的。
批处理解析器看不到 python 代码,因为它之前已经退出。
第一行是关键。
它对批处理和 python 都有效!
在 python 中,它只是一个没有输出的无意义的比较 1>2
,该行的其余部分是 #
的注释。
对于批处理 1>2#
是流 1
到文件 2#
的重定向。
命令是一个冒号:
这表示标签和标签行永远不会被打印。
然后最后一个插入符只是将下一行附加到标签行,因此批处理看不到 '''
行。
关于python - 如何在批处理脚本中嵌入 python 代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17467441/