启动时,通过 vbs 脚本发出 运行 一个 bat 文件

On boot, issues running a bat file through vbs script

我需要在启动时 运行 一个程序(python 脚本制作成 exe),而不显示控制台。 在某些问题中,我找到了解决方案,即执行程序。现在,我正在用一个简单的 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

作为 WScript "path_to_the_vbs_file"。

在启动时,VBS 文件正确执行(通过添加显示弹出窗口的 MsgBox 进行验证)但未执行对 bat 文件的调用。我该怎么做?

在 windows 中有两个 python 可执行文件:python.exepythonw.exe。如果您不想看到终端 window,则必须使用 pythonw.exe.

我需要运行一个程序(将python脚本制作成exe)。

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

您不需要从 python 创建 EXE 文件。您可以 运行 pythonw.exe 将路径作为脚本的参数。为什么需要从 vbscript 创建 运行 的 .bat?看这里:

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

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

其他方法 运行 启动时的脚本是使用 Windows 调度程序。最大的优点是您可以在启动脚本时设置用户权限或更多事件。您也可以 运行 手动脚本,您将获得最后状态。

创建 Python .exe 有时很棘手。如果您不需要将脚本分发到多台计算机,我宁愿不要使用。