enclave
Goto Top

Batch Eine Abfrage in einer bestimmten Zeit

Hallo alle zusammen,

Ich wollt mir ein Batchscript in den Autostart legen der Programme startet aber...

Ich würd es gerne haben das sich das Script startet und im CMD Fenter steht:

Druecken Sie eine Taste um das Laden der Programm abzubrechen (0. Sekunden)
Druecken Sie eine Taste um das Laden der Programm abzubrechen. (1. Sekunde)
Druecken Sie eine Taste um das Laden der Programm abzubrechen.. (2. Sekunde)
Druecken Sie eine Taste um das Laden der Programm abzubrechen... (3. Sekunde)
Druecken Sie eine Taste um das Laden der Programm abzubrechen.... (4. Sekunde)
Druecken Sie eine Taste um das Laden der Programm abzubrechen..... (5. Sekunde)

Wenn in den 5 Sekunden keine Taste gedrueckt wurde soll das Script die Programme starten ansonste nicht...


Wie kann ich das machen? Wär geil wenn mir da jemand helfen koente...


Mfg & thx

Enclave

Content-Key: 40760

Url: https://administrator.de/contentid/40760

Printed on: April 19, 2024 at 22:04 o'clock

Member: gijoe
gijoe Sep 24, 2006 at 10:36:10 (UTC)
Goto Top
hi, warum nimmst du dafür nicht einfach eine verständlichere Script-Sprache? zB WSH oder AutoIt.
Wenns du imbedingt mit einer Batch machen willst, dann kannst du dir ja den Befehl "sleep.exe" herunterladen.
In WSH kannst du mit Timer() arbeiten und Messageboxen, hab ich noch nie getestet.
In AutoIt kannst du eine Messagebox recht einfach zB 10 Sekunden erscheinen lassen, wenn man nichts drückt passiert nichts, wenn man dann OK (oä) drückt wird dein Programm gestartet, etwa so:

; Starte mein Programm
$error = MsgBox(1,"Startup", "Wollen Sie das Programm xy starten?",10)
if $error = -1 Then Exit
Else
Run("C:\Programme\MeinProgramm.exe")
EndIf

Dieses Script setzt du dann anstelle deiner Batchdatei in den Autostart. Ich benutze AutoIt oft zum Paketieren von Programmen. Gibt bestimmt besseres, aber es hat eine Umfangreiche und einfache Oberfläche und ist für den Script einstieg ein geniales Tool.
Member: Biber
Biber Sep 25, 2006 at 06:02:35 (UTC)
Goto Top
Moin Enclave,

geht wirklich nicht gut mit native Batch, Deine Anforderung.
Ein Kompromiss wäre:
::--    snipp Countdown.bat
@echo off & For /L %%i in (1,1,5) do ((ping -n 2 localhost>nul) && Echo Druecken Sie Strg-C um das Laden der Programm abzubrechen. ^(%%i. von 5 Sekunden^))||goto :eof
echo hier ist Start von LadenDerProggies.exe 
::--    snapp Countdown.bat
Output wäre:
>f:\countdown.bat
Druecken Sie Strg-C um das Laden der Programm abzubrechen. (1. von 5 Sekunden)
Druecken Sie Strg-C um das Laden der Programm abzubrechen. (2. von 5 Sekunden)
Druecken Sie Strg-C um das Laden der Programm abzubrechen. (3. von 5 Sekunden)
^CBatchvorgang abbrechen (J/N)? j

Gruß
Biber
Member: Enclave
Enclave Sep 25, 2006 at 13:44:08 (UTC)
Goto Top
Also AutoIT hab ich mir schonmal angguckt aber ich komm da nich drauf klar...

Also ich weis nich wo und wie ich ein Script schreibe.

Wär geil wenn ihr mir mal ein kleines Tut geben könntet face-smile

@Biber:

Also das mit Strg+X ist nich so das was ich suche...

Mfg

Enclave
Member: gijoe
gijoe Sep 25, 2006 at 20:37:51 (UTC)
Goto Top
für AutoIt musst du dir noch den Editor runterladen (auch auf AutoIt page).
Member: TobiasBessenreither
TobiasBessenreither Sep 26, 2006 at 06:56:51 (UTC)
Goto Top
Also die Pause könnte man auch mit vbscript machen:

Datei sleep.vbs
WScript.sleep 10000

WScript.sleep "Zeit in ms"


und aus der *.bat mit:
cscript sleep.vbs > Nul
aufrufen
Member: Turrex0100
Turrex0100 Jan 12, 2009 at 17:18:57 (UTC)
Goto Top
hi biber,
geht es nicht auch nach dem prinzip:

ping -n 2 127.0.0.1 >nul
cls
echo Druecken Sie Strg-C um das Laden der Programm abzubrechen. (1. von 5 Sekunden)
ping -n 2 127.0.0.1 >nul
cls

lg
Turrex
Member: Biber
Biber Jan 12, 2009 at 17:40:55 (UTC)
Goto Top
Moin Turrex0100,

klar, ginge auch...
Aber das eigentliche Problem, nämlich "beliebige Taste für Abbruch...", das bekommen wir mit Batch nicht so elegant hin.
Ich kann zwar 5x hintereineinander den Ping-Mich-Mal aufrufen, um je eine Sekunde zu verdaddeln und kann das in (m)einer Zählschleife oder in (D)einer plattgeklopften Schleife abkaspern.
Aber in jedem Fall nur mit "Strg-C" (und ggf. Nachfrage) abbrechen.
Und nicht mit beliebiger Taste.

Deshalb ist hier native Batch mal das eher ungeeignete Werkzeug.

Grüße
Biber
Member: Turrex0100
Turrex0100 Jan 13, 2009 at 17:20:49 (UTC)
Goto Top
Hi Biber,

hab des problem jetzt auch erkannt...


sry wegen meiner "plattgeklopften" skripte, bin aber auch ein neuling
und mach das mehr aus spaß...

Hast aber recht das deine lösung eleganter ist....

lg Turrex