2017-06-30 1 views
0

Ich brauche ein Programm (ein Python-Skript in einer exe) beim Start, ohne dass die Konsole angezeigt wird. In einigen Fragen habe ich die Lösung gefunden, d. H. Um das Programm auszuführen. Im Moment teste ich es heraus mit einem einfachen Python-Programm filewriter.py das tut -Beim Start Probleme beim Ausführen einer Bat-Datei über VBS-Skript

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

Die Bat-Datei tool.bat:

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

Die VBS-Datei:

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

Wenn ich die VBS-Datei (Doppelklick) ausführen, funktioniert alles einwandfrei. Die Ausgabedatei wird angezeigt, ohne dass die Konsole angezeigt wird. So habe ich es unter

HKCU\Software\Microsoft\CurrenVersion\Run 

als WScript "path_to_the_vbs_file" in der Registrierung.

Beim Start wird die VBS-Datei ordnungsgemäß ausgeführt (überprüft durch Hinzufügen einer MsgBox, die das Popup anzeigt), aber der Aufruf der Bat-Datei wird nicht ausgeführt. Wie mache ich das?

Antwort

1

In Windows gibt es zwei ausführbare Python-Dateien: python.exe, pythonw.exe. Wenn Sie das Terminalfenster nicht sehen möchten, müssen Sie pythonw.exe verwenden.

Ich brauche ein Programm (ein Python-Skript in einer exe gemacht).

Wenn Sie Ihr Skript zu .exe mit Hilfe von py2exe verdecken, ist es simillar. Sie können Ihrem Skript console oder windows zuweisen. Schauen Sie nach Py2exe Tutorial, die console Variable kann für windows ersetzt werden.

Sie müssen keine EXE-Dateien von Python erstellen. Sie können pythonw.exe mit Pfad als Argument für Ihr Skript ausführen. Warum müssen Sie .bat erstellen, die Sie von vbscript ausführen? Schau hier: Run on windows startup CMD with arguments

Ich vergaß zu sagen, dass das Windows Python-Installationsprogramm normalerweise folgende Dateizuordnung erstellen, so dass das Skript direkt ausgeführt werden kann.

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

Anderer Art und Weise, wie Sie die das Skript beim Booten ausgeführt werden können, ist Windows-Scheduler zu verwenden. Der große Vorteil ist, dass Sie beim Starten des Skripts Benutzerrechte oder mehr Ereignisse einrichten können. Sie können das Skript auch manuell ausführen, und Sie werden den Status beibehalten.

Erstellen Python .exe ist manchmal schwierig. Wenn Sie Ihr Skript nicht auf mehrere Computer verteilen müssen, verwende ich nicht.

+0

Oh. Ich hatte es der Konsole anstelle von Windows beim Konvertieren zugewiesen. Dies hat die Notwendigkeit für alle diese VBS- und BAT-Dateien beseitigt. Ich danke dir sehr. – akshayub

Verwandte Themen