PCMasters Hardware Forum > Software > GFX, Webdesign und Programmierung > Seite 10 > Problem bei batch- Zählschleife

Im PC Forum registrieren


Produktsuche
IDEALO-PRODUKT-SUCHE
idealo preisvergleich
PCM News & Reviews
Antwort
 
 
Alt 21.10.2009, 13:44
Threadersteller
ka0t
 
Standard

Problem bei batch- Zählschleife



Ich habe eine kleine batch geschrieben die X mal ein Programm öffnen, warten und es wieder schließen soll.

Wenn dies erfolgt ist will ich per shutdown-r die Kiste neustarten lassen.

Hier ist das kleine Progrämmchen:


Code:
SET i = 1

cls

pause


:openclose
sleep.exe 5


start winword
sleep.exe 5


taskkill /F /IM winword.exe
sleep.exe 3

:openclose

FOR /L %%i IN (1, 1, 3) DO (goto openclose)

rem rum isses nu
PAUSE

Zu der Bemerkung "rum isses nu" kommt er nicht und verharrt ewig in der Schleife.

Mit if hatte ich es vorher veruscht, hatte mich der Einfachheit wegen doch für eine for- Schleife die ich aus c++ kenne entschieden.

Wenn ich die Schleife kopfgesteuert mache wird die Schleife nur einmal ausgeführt.

Müsste ich eine Sprungmarke zur for- Funktion am Ende der openclose setzen wenn ich die Schleife kopfgesteuert lasse ?


Die Endlosschleife mit immer falscher Abbruchbedingung kann ich mir nicht erklären.

Geändert von pixelflat (21.10.2009 um 14:11 Uhr).
Alt Heute
Hardware Bot
Computer Informationen
 
Diese Werbung wird registrierten
Mitgliedern nicht angezeigt.
Werden Sie noch heute kostenlos Mitglied
auf PCMasters.de
Standard Weitere Informationen

 
Alt 21.10.2009, 14:15
pixelflat
 
Standard

Ich hab mir mal erlaubt deinen Code in den richtigen BB-Code zu packen.

Das einfachste vorweg: Du hast 2x die selbe Sprungmarke definiert (openclose). Ich würde vermuten, dass nur die 2. gültig ist, also wird in deiner Schleife immer wieder einfach nur "kurz vor die Schleife" gesprungen.

An deiner Stelle würde ich die FOR-Schleife an den Anfang setzen und danach die Sprungmarken definieren.

]
 
Alt 23.10.2009, 12:36
Threadersteller
ka0t
 
Standard

Ich hab das ganze umgeschrieben.

Nun speichert die batch eingegebene Variablen in einem erstellten Ordner (testweise)

Was mich wahnsinnig macht ist das die batch immer bei Neueintritt der openclose- Schleife den Syntax "if /I "%i%" GEQ "%zahler%" goto :end"
als true nimmt - aber er MUSS doch false sein
wenn I grössergleich Zähler hopse zum Ende
I ist 0+1 pro Schleifendurchlauf, Zähler ist vom Benutzer vorgegeben und immer auf 10.

Die batch gibt auch aus das I 2 ist wenn die Schleife verlassen wird und auch das die Zählervariable bei beispielsweise 10 liegt.

Edit: wenn ich die Bedinung für den Schleifenausgang auf GTR stelle funktioniert es - weswegen kann ich aber nicht verstehen xD

Code:
SET /A i = 0
echo off
 set /p reboot=Wie oft soll sich der Rechner neustarten ? 

 set /p zahler=Bitte Anzahl der Durchgaenge pro boot        eingeben: 

 set /p progvar=Bitte den Namen der Anwendung ohne Endung   eingeben: 

 set /p wartezeit=Bitte die Oeffnungsdauer des Programms in Sekunden:



md C:\openclose
echo %zahler% >>"C:\openclose\Durchgang.txt"
echo %progvar% >>"C:\openclose\Anwendung.txt"
echo %wartezeit% >>"C:\openclose\wartezeit.txt"
echo %reboot% >>"C:\openclose\reboot.txt"

cls
 
echo Das Programm laueft nun %zahler% mal durch .
echo Die Anwendung heisst %progvar% . 
echo Die Anwendung bleibt %wartezeit% Sekunden geöffnet.
SET /A ( Laufzeit=(zahler*Wartezeit*reboot)/60 )
echo Die Laufzeit betraegt gesamt circa %Laufzeit% Minuten. 


echo gestartet am %date:~0% - %time:~0,8% Uhr>>"C:\openclose\prockill.txt"




color 2  
sleep.exe 4
goto openclose
:openclose
sleep.exe 2
set /A i=%i%+1

echo DURCHGANG %i% VON %zahler% >> "C:\openclose\prockill.txt"
cls
echo DURCHGANG %i% VON %zahler%
SET /A ( Laufzeit=(zahler*Wartezeit*reboot)/60 )
echo %Laufzeit% Minuten verbleibend.
if /I "%i%" GEQ "%zahler%" goto :end

start %progvar%
sleep.exe %Wartezeit%


taskkill /F /IM %progvar%.exe >> "C:\openclose\prockill.txt"

sleep.exe 2
if /I "%i%" LEQ "%zahler%" goto :openclose

:end
echo ______________________ >> "C:\openclose\prockill.txt"
echo Jetzt ist der Test beendet !!
echo %i%
echo Ende am %date:~0% - %time:~0,8% Uhr>>"C:\openclose\prockill.txt" 
echo Nach 20 Sekunden startet das System neu 
echo reboot.exe wird gestartet ...
PAUSE

Geändert von ka0t (23.10.2009 um 13:43 Uhr).
hardware forum Neue Frage stellen?
Kurze Zusammenfassung der Frage:
Bitte wählen Sie eine Kategorie:
Mailadresse:
Ihre Frage:
Ihre Frage wird als Gast gespeichert. Sollte eine Antwort im Forum erfolgen, bekommen Sie diese per Email zugeschickt.


Antispam, bitte die folgende Aufgabe lösen: 
 
Um auf dieses Thema zu ANTWORTEN
bitte sich zuerst » hier kostenlos registrieren!!

Antwort

Tags: , ,

Ähnliche Tags: , ,


Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Wolf Et 2.55 Problem. #Rey Action 9 09.10.2010 20:02
Problem mit Geforce 8800 GT xxxTomxxx Grafikkarten 5 21.08.2010 22:53
Hardware Problem iall Grafikkarten 3 03.05.2010 17:55
Problem beim Zugriff auf 2. Festplatte über Programme BloodyLove Festplatten und optische Laufwerke 4 15.12.2009 10:05
Audio Problem dahbka Hardware Allgemein 0 01.05.2008 21:04
BenQ-FP71V-TFT Problem babbsagg Monitore und PC-Peripherie 1 21.03.2008 13:32
Problem mit wc3tft und grafikarte ? DoN Grafikkarten 6 08.07.2007 12:22
Problem mit unbekannter Ursache Silens Hardware Allgemein 4 04.06.2007 00:07


Sie betrachten gerade: Problem bei batch- Zählschleife


Alle Zeitangaben in WEZ +1. Es ist jetzt 11:38 Uhr.



Im PC Forum registrieren