我需要在启动时运行一个程序(一个创建为exe的python脚本),而不会出现控制台。 在某些问题上,我找到了解决方案,即执行程序。现在,我正在用一个简单的python程序 filewriter.py 测试它 -
while count != 1000:
f = open('test.txt','a+')
f.write(str(count))
f.close()
sleep 1
bat文件tool.bat:
@ECHO OFF
python "<absolute_path_here>\filewriter.py"
EXIT /B
VBS文件:
Set WinScriptHost = CreateObject("WScript.Shell")
WinScriptHost.Run Chr(34) & "<absolute_path_here>\tool.bat" & Chr(34), 0
Set WinScriptHost = Nothing
如果我执行VBS文件(双击它),一切正常。出现输出文件,不显示控制台。所以我把它添加到
下的注册表中HKCU\Software\Microsoft\CurrenVersion\Run
as WScript&#34; path_to_the_vbs_file&#34;。
在启动时,VBS文件正确执行(通过添加显示弹出窗口的MsgBox验证它)但是没有执行对bat文件的调用。我如何使这项工作?
答案 0 :(得分:1)
在Windows中有两个python可执行文件:python.exe
,pythonw.exe
。如果您不希望看到终端窗口,则必须使用pythonw.exe
。
我需要运行一个程序(一个用于exe的python脚本)。
如果您在.exe
的帮助下将脚本转换为py2exe
,那么它就是相似的。您可以将脚本分配到console
或windows
。查看Py2exe Tutorial,console
变量可替换为windows
。
您不需要从python创建EXE文件。您可以使用path作为脚本的参数运行pythonw.exe
。为什么需要创建从.bat
运行的vbscript
?看这里:Run on windows startup CMD with arguments
我忘了说,Windows Python安装程序通常会创建以下文件关联,因此脚本可以直接运行。
python.exe
pythonw.exe
在启动时如何运行脚本的其他方法是使用Windows Scheduler。最大的优点是您可以在启动脚本时设置用户权限或更多事件。您也可以手动运行脚本,并且您将持续运行状态。
创建Python .exe
有时很棘手。如果您不需要将脚本分发给多台我不喜欢使用的计算机。