作者Holocaust123 (奔跑的蜗牛)
看板Python
标题[教学] 把 Python 程式码嵌入 DOS batch 中
时间Sun Apr 3 20:16:28 2011
rem = """
@echo off
rem -------------------- DOS section --------------------
rem You could set PYTHONPATH or TK environment variables here
python "%~f0" %*
goto exit
"""
############### Start of Python code ###############
# 把 Python 程式码写在这个黄色区域
############### End of Python code ###############
DosExitLabel = """
:exit
pause
exit
rem """
这个是我之前在网路上看到的
可以把 Python 程式码写在 Windows 的 .bat 档中
把 .bat 改成 .py 也照样可以执行
(也就是反过来把 DOS batch 嵌入 Python 中)
我觉得还蛮有用的
因为我平常把 .py 设定成点两下使用 gvim 打开
要执行 .py 档的话必须打开後按 F10 (或弄成exe执行)
而弄成 .bat 後 要执行只要点两下就可以了
(不过这只是个人习惯不同罢了
也有人觉得在 .py 档按右键 > 开启档案 > python 比较方便)
当然弄成 .pyc 也有同样的效果 但这样就看不到程式码了
注意事项:
1. .bat档在执行时
Windows会假设其编码为 ANSI/OEM encoding (以 zh-tw 的 locale 来说就是 big5)
若你的 .bat 存成 ANSI/OEM encoding 之外的 encoding
其 code point 表示的 character 可能会无法正常显示
甚至会产生执行错误
我的建议是不要使用 Non-ASCII character
就算把 Non-ASCII character 写在 Python script 区域
也会因为没有宣告文件编码而出现 syntax error
(我不知道怎麽把 Python script 嵌入 .bat 时同时宣告文件编码)
2. 承上
若你的 .bat 档用的是 Unicode encoding (ex: UTF-8)
要注意有无 BOM
另外我依样画葫芦 弄了一个把 AutoHotKey 嵌入 .bat 档的脚本
有兴趣的人可以参考
#1Dc67SX3 (EzHotKey)
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 140.112.30.46
※ 编辑: Holocaust123 来自: 140.112.30.46 (04/03 20:59)
1F:推 attomahawk:推一个,谢谢你! 04/03 21:55
2F:推 hl4:真有趣 04/03 23:32
3F:推 goeric:感谢分享! 04/04 12:17