在启动时,通过vbs脚本运行bat文件的问题

时间:2017-06-30 09:48:49

标签: windows batch-file vbscript startup

我需要在启动时运行一个程序(一个创建为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文件的调用。我如何使这项工作?

1 个答案:

答案 0 :(得分:1)

在Windows中有两个python可执行文件:python.exepythonw.exe。如果您不希望看到终端窗口,则必须使用pythonw.exe

我需要运行一个程序(一个用于exe的python脚本)。

如果您在.exe的帮助下将脚本转换为py2exe,那么它就是相似的。您可以将脚本分配到consolewindows。查看Py2exe Tutorialconsole变量可替换为windows

您不需要从python创建EXE文件。您可以使用path作为脚本的参数运行pythonw.exe。为什么需要创建从.bat运行的vbscript?看这里:Run on windows startup CMD with arguments

我忘了说,Windows Python安装程序通常会创建以下文件关联,因此脚本可以直接运行。

  • '。py'到python.exe
  • '。pyw'到pythonw.exe

在启动时如何运行脚本的其他方法是使用Windows Scheduler。最大的优点是您可以在启动脚本时设置用户权限或更多事件。您也可以手动运行脚本,并且您将持续运行状态。

创建Python .exe有时很棘手。如果您不需要将脚本分发给多台我不喜欢使用的计算机。

相关问题