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

问题描述:

我需要在启动时运行一个程序(python脚本制作成exe文件),而不会显示控制台。 在某些问题中,我找到了解决方案,即执行该程序。在启动时,通过vbs脚本运行bat文件的问题

@ECHO OFF 
python "<absolute_path_here>\filewriter.py" 
EXIT /B 

VBS文件:

while count != 1000: 
    f = open('test.txt','a+') 
    f.write(str(count)) 
    f.close() 
    sleep 1 

BAT文件tool.bat - 现在,我用一个简单的Python程序filewriter.py,做测试出来

Set WinScriptHost = CreateObject("WScript.Shell") 
WinScriptHost.Run Chr(34) & "<absolute_path_here>\tool.bat" & Chr(34), 0 
Set WinScriptHost = Nothing 

如果我执行VBS文件(双击它),一切工作正常。输出文件出现,不显示控制台。所以我把它添加到注册表中,作为WScript“path_to_the_vbs_file”的

HKCU\Software\Microsoft\CurrenVersion\Run 

在启动时,VBS文件正常执行(通过添加一个显示弹出框的MsgBox来验证它),但是没有执行对bat文件的调用。我如何完成这项工作?

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

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

如果你的py2exe帮助隐蔽你的脚本.exe这是呈三角。您可以将脚本分配到consolewindows。看看Py2exe Tutorialconsole变量可以替换为windows

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

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

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

其他方式如何,你可以在启动时运行的脚本是使用Windows调度。最大的好处是您可以在启动脚本时设置用户权限或更多事件。您也可以手动运行脚本,并且您将保持状态。

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

+0

哦。我在转换它时将它分配给了控制台而不是窗口。这消除了所有这些VBS和BAT文件的需要。非常感谢。 – akshayub