在Windows环境上,如何隐藏python服务程序在后台运行方法,有三种方法。
方案一
@echo off
if "%1"=="show" goto begin
start mshta vbscript:createobject("wscript.shell").run("%~f0 show",0)(window.close)&&exit
:begin
::执行具体任务
python ****.py
这实个批处理脚本,它调用了 mshta
来执行 VBScript 代码。下面是对每个部分的解释:
-
start mshta
: 这启动了mshta
工具,该工具用于执行 HTML 和脚本。 -
vbscript:createobject("wscript.shell").run("%~f0 show",0)
: 这是 VBScript 代码,它使用WScript.Shell
对象运行当前批处理脚本文件自身(%~f0
表示当前脚本的完整路径),并使用0
参数表示以隐藏窗口的方式运行。 -
(window.close)
: 这一部分是 VBScript 代码的一部分,它告诉 VBScript 在执行完脚本后关闭 HTML 窗口。 -
&&exit
: 这是批处理脚本的一部分,表示在前面的命令执行完毕后退出批处理。
综合起来,这个命令的作用是通过 VBScript 在后台运行当前脚本,同时隐藏命令行窗口。 VBScript 在执行完成后会关闭 HTML 窗口,&&exit
部分确保在 VBScript 执行完成后退出批处理。
这样的方法可以隐藏窗口,但也可能因为执行 VBScript 而带来一些限制。如果你在使用中遇到问题或有其他需求,随时告诉我。
mshta
是 Microsoft HTML Application Host 的缩写。这是一个 Windows 工具,用于执行 HTML 应用程序(HTML Application,或简称 HTA)。HTA 是一种允许使用 HTML、CSS 和脚本语言(通常是 VBScript 或 JScript)创建的本地 Windows 应用程序。
HTA 具有与浏览器不同的权限,通常可以访问更多的系统资源。mshta
工具允许你在没有浏览器界面的情况下执行和展示 HTA 应用程序。
在你的命令中,mshta
被用来执行一个包含 VBScript 代码的 HTML 片段,从而实现在后台运行并隐藏命令行窗口的效果。
方案二
使用 VBScript(Visual Basic Scripting Edition)可以是另一种隐藏命令行窗口并在后台运行脚本的方法。你可以创建一个 VBScript 脚本,然后通过运行该脚本来启动 Python 脚本。
以下是一个简单的示例,演示如何使用 VBScript 启动 Python 脚本并在后台运行:
-
创建一个 VBScript 文件(例如
run_python.vbs
)并使用文本编辑器打开它。 -
将以下代码粘贴到 VBScript 文件中:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "python.exe your_script.py", 0 ' 0 表示隐藏窗口
Set WshShell = Nothing
请确保替换 "python.exe your_script.py"
部分为你的 Python 解释器和脚本的路径。
-
保存并关闭 VBScript 文件。
-
在 cmd 中执行以下命令:
wscript.exe run_python.vbs
这将启动 VBScript,并在后台运行 Python 脚本,同时隐藏命令行窗口。
注,上述内容参考自ChatGPT。
同理,批处理也类似,把python命令放到bat脚本中。
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run "%comspec% /c py_script.bat", 0 ' 0 表示隐藏窗口
Set WshShell = Nothing
%comspec% 为系统环境变量,其值就是cmd.exe程序绝对路径。
然后通过双击hiderun.vbs(或在其他程序中运行这个vbs脚本),然后test.bat就在后台运行了(不会闪一下窗口)
方案三
或者 python gui pythonw
pythonw PVAPScheduler.py
Pythonw.exe是Python解释器的窗口版本,它以无控制台窗口的形式启动。这意味着在运行Python脚本时,不会显示控制台窗口,而是在后台静默地执行,并不会弹出任何窗口。这使得Pythonw.exe适用于一些需要在后台运行的应用程序,如Windows服务、后台任务等。
参考:
小青龍. Windows bat隐藏运行窗口的几种方案. CSDN博客. 2023.07
文章评论