Bat Datei und Programm wartet auf Rückmeldung

FireBirds

Cadet 1st Year
Registriert
Feb. 2024
Beiträge
12
Hi.

Ich möchte über eine Batdatei NordVPN Windows App starten
Sieht so aus in der Bat:

C:\Programme\NordVPN\NordVPN.exe
wird auch gestartet aber dadurch das danach nur der Cursor blinkt werden keine nachfolgenden Befehle aus geführt, warum?

Irgendwie wartet die Bat auf eine Rückmeldung von NordVPN.exe


Wenn ich aber in der Eingabeaufforderung manuell auch so starte kann ich danach weitere Befehle eingeben und wartet nicht auf Rückmeldung.
Aber in der Batdatei wartet er auf irgendwas da der Cursor blinkt.

Wer hat für mich einen Tipp ?

Danke.

LG FireBirds
 
evtl das Programm mit dem Befehl "start" starten in der Batch?
Man findet bestimmt einiges dazu via Google.
 
  • Gefällt mir
Reaktionen: dms und kartoffelpü
start C:\Programme\NordVPN\NordVPN.exe
 
  • Gefällt mir
Reaktionen: tollertyp
Danke.
Ich lese schon seit ca. 2 Stunden rum und habe irgendwie nix passendes gefunden oder einfach übersehen.

Jetz funktioniert es.

Eine kurze Frage noch.

Weiß jemand ein Befehl das so 30 sekunden ein Zähler runterzählt und dann sich das Fenster schließt.

;-)
 
unter Linux ist es pause und ne zahl. gibt sicher vergleichbares. suche doch nach windows batch pause.. sollte was ergeben.
 
@firebird: Es war auch nicht als Vorwurf gemeint, dass du googlen sollst, mir ging es um die Nutzung des Befehls "start", was man damit so machen kann. Da kann man einiges via Google finden.
 
FireBirds schrieb:
Weiß jemand ein Befehl das so 30 sekunden ein Zähler runterzählt und dann sich das Fenster schließt.
Code:
@echo off
set /a counter=30
:loop
cls
echo Warte %counter% Sekunden...
ping localhost -n 2 > nul
set /a counter=%counter%-1
if %counter% GTR 0 goto loop
exit

Edit: Eigentlich doof, mit einem ping das zu realisieren, da es nicht mehr nötig ist. Machen wirs einfach mit timeot. Zumindest geh ich davon aus, dass dein System halbwegs aktuell ist.
Code:
@echo off
set /a counter=30
:loop
cls
echo Warte %counter% Sekunden...
timeout /t 1 /nobreak > nul
set /a counter=%counter%-1
if %counter% GTR 0 goto loop
exit
 
Zuletzt bearbeitet:
Kann man da irgendwie ein Befehl mit integrieren das dort die Sekunden runterzählen?

echo Warte %counter% Sekunden...
 
Was meinst du genau? "irgendwie" und "irgendwo" und "irgendwas" sind beim programmieren immer schwierig. Gib ein konkretes Beispiel, dann kann dir sicherlich geholfen werden.
 
mach nen for loop und der macht nur jede sekunde pause danach echo inklusive clear screen..

(in der richtigen reihenfolge)
 
Bei timeout /T 12 /nobreak
wird ja ein Zähler runtergezählt. Aber ich möchte mein eigenen Text z.B.

Das Fenster wird in 12 Sekunden geschlossen (dort die Sekunden runterzählen).
 
Ok, ich glaube, ich verstehe gerade das Problem. Du hast dich bislang nicht mit solchen Scripten auseinandergesetzt? Wenn du einfach nur den Text ändern willst, dann musst du im eigentlichen Script nichts ändern. Du änderst nur den Teil der Ausgabe. Das, was du zu sehen bekommst, wird durch das "echo" erzeugt. Um es dahin zu ändern, wie du es willst, ist nur diese kleine Anpassung nötig.
Code:
@echo off
set /a counter=30
:loop
cls
echo Das Fenster wird in %counter% Sekunden geschlossen.
timeout /t 1 /nobreak > nul
set /a counter=%counter%-1
if %counter% GTR 0 goto loop
exit
exit

Edit: Hier mal eine kommentierte Version, damit du verstehst, was in dem Script vor sich geht.

Code:
@echo off
:: Schaltet die Anzeige der ausgeführten Befehle aus, damit nur die bewusst erzeugten Nachrichten im Konsolenfenster erscheinen.

set /a counter=30
:: Initialisiert den Countdown-Zähler mit einem Startwert von 30 Sekunden.

:loop
:: Definiert einen Wiederholungspunkt im Skript, den sogenannten Loop-Start, zu dem das Skript für jede Wiederholung des Countdowns zurückspringt.

cls
:: Bereinigt den Bildschirm von allen vorherigen Ausgaben, damit der nächste Ausgabetext klar und ohne Ablenkung erscheint.

echo Das Fenster wird in %counter% Sekunden geschlossen.
:: 'echo' ist ein Befehl, der verwendet wird, um Text im Konsolenfenster anzuzeigen. Hier teilt er dem Benutzer mit, wie viele Sekunden noch verbleiben, bis das Fenster automatisch geschlossen wird. Der Teil '%counter%' wird durch den aktuellen Wert der Zählervariablen ersetzt, sodass der Benutzer in Echtzeit sehen kann, wie der Countdown sekündlich herunterzählt.

timeout /t 1 /nobreak > nul
:: Verursacht eine Pause oder Verzögerung von 1 Sekunde im Skript, ohne dass der Benutzer sie überspringen kann. Die Ausgabe dieses Befehls wird unterdrückt (nicht im Fenster angezeigt), um die Ausgabe übersichtlich zu halten.

set /a counter=%counter%-1
:: Reduziert den Wert des Countdown-Zählers um 1. Dies simuliert das Verstreichen einer Sekunde im Countdown.

if %counter% GTR 0 goto loop
:: Überprüft, ob der Countdown-Zähler noch größer als 0 ist. Ist dies der Fall, springt das Skript zurück zum 'loop'-Label und wiederholt den Vorgang, bis der Zähler 0 erreicht.

exit
:: Beendet das Skript, wenn der Countdown abgelaufen ist und der Zähler auf 0 steht. Das Konsolenfenster bleibt offen, bis der Benutzer es manuell schließt oder das Skript durch einen weiteren Befehl geschlossen wird.
Edit2: Hab versehentlich den falschen Script oben genutzt. Ist jetzt der mit timeout ;)
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: FireBirds und Nilson
Ist schon sehr lange her wo ich sowas noch konnte.

Vielen dank.

Jetzt alles Super.

Danke ;-)
 
Zurück
Oben