2017-06-30 112 views
0

我需要在啓動時運行一個程序(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文件的調用。我如何完成這項工作?

回答

1

在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