Top-Themen

AppleEntwicklungHardwareInternetLinuxMicrosoftMultimediaNetzwerkeOff TopicSicherheitSonstige SystemeVirtualisierungWeiterbildungZusammenarbeit

Aktuelle Themen

Administrator.de FeedbackApache ServerAppleAssemblerAudioAusbildungAuslandBackupBasicBatch & ShellBenchmarksBibliotheken & ToolkitsBlogsCloud-DiensteClusterCMSCPU, RAM, MainboardsCSSC und C++DatenbankenDatenschutzDebianDigitiales FernsehenDNSDrucker und ScannerDSL, VDSLE-BooksE-BusinessE-MailEntwicklungErkennung und -AbwehrExchange ServerFestplatten, SSD, RaidFirewallFlatratesGoogle AndroidGrafikGrafikkarten & MonitoreGroupwareHardwareHosting & HousingHTMLHumor (lol)Hyper-VIconsIDE & EditorenInformationsdiensteInstallationInstant MessagingInternetInternet DomäneniOSISDN & AnaloganschlüsseiTunesJavaJavaScriptKiXtartKVMLAN, WAN, WirelessLinuxLinux DesktopLinux NetzwerkLinux ToolsLinux UserverwaltungLizenzierungMac OS XMicrosoftMicrosoft OfficeMikroTik RouterOSMonitoringMultimediaMultimedia & ZubehörNetzwerkeNetzwerkgrundlagenNetzwerkmanagementNetzwerkprotokolleNotebook & ZubehörNovell NetwareOff TopicOpenOffice, LibreOfficeOutlook & MailPapierkorbPascal und DelphiPeripheriegerätePerlPHPPythonRechtliche FragenRedHat, CentOS, FedoraRouter & RoutingSambaSAN, NAS, DASSchriftartenSchulung & TrainingSEOServerServer-HardwareSicherheitSicherheits-ToolsSicherheitsgrundlagenSolarisSonstige SystemeSoziale NetzwerkeSpeicherkartenStudentenjobs & PraktikumSuche ProjektpartnerSuseSwitche und HubsTipps & TricksTK-Netze & GeräteUbuntuUMTS, EDGE & GPRSUtilitiesVB for ApplicationsVerschlüsselung & ZertifikateVideo & StreamingViren und TrojanerVirtualisierungVisual StudioVmwareVoice over IPWebbrowserWebentwicklungWeiterbildungWindows 7Windows 8Windows 10Windows InstallationWindows MobileWindows NetzwerkWindows ServerWindows SystemdateienWindows ToolsWindows UpdateWindows UserverwaltungWindows VistaWindows XPXenserverXMLZusammenarbeit
GELÖST

For Schleife unterbrechen und wieder starten.

Frage Entwicklung Batch & Shell

Mitglied: tkline

tkline (Level 1) - Jetzt verbinden

14.05.2008, aktualisiert 15.05.2008, 4830 Aufrufe, 4 Kommentare

Hi Leute, hab mal wieder eine tricky Aufgabe für euch,

Hab folgendes Batchfile geschrieben:
01.
for /f "tokens=1,2 delims=/ " %%A in (datei.dat) do (App1 -u=test -p=test1 -g=ads -Jahre=%%A -Alter=%%B -Check=All -debug > %%A_%%B_Summe.txt)
Erläuterung:
Damit lasse ich diverse Einträge aus der Datei "datei.dat" auslesen und starte ein Programm App1.
So weit so gut. Ich möchte nun dieses Skript nach ca. 20 Durchläufen unterbrechen, um
ein anderes batchfile (batch2.bat) auszuführen. Sobald batch2 ausgeführt ist, soll das script
dann wieder weiterlaufen. Nach weiteren 20mal soll das ganze dann wiederholt werden...usw.

Die Batch2.bat kann auch parallel aufgerufen werden, das erste batchfile muss nicht unbedingt unterbrochen werden.
Allerdings soll Batch2 erst dann aufgerufen werden, wenn das obere Skript 20 mal durchlaufen wurde.

Habt ihr eine Idee?
Wär super


Grüße
Tom
Mitglied: sp00ner
14.05.2008 um 17:29 Uhr
Hi,

kenn mich mit Batch-Programmierung nicht so gut aus, das Verfahren dass du beschreibst, hört sich aber nach der modulo-Operation an.

zaehler i = 0

for(;;){

i = i + 1

if ( i % 20 == 0){
starte batch2
}

}

modulo gibt den restwert zurück, also ist i % 20 = 0 erfüllt, wenn i gleich 20, 40 usw. ist

hoffe das hilft dir und du kannst modulo in batch überhaupt verwenden
Bitte warten ..
Mitglied: bastla
14.05.2008 um 17:34 Uhr
Hallo tkline!

Ungetestet etwa so:
01.
@echo off & setlocal 
02.
set /a Zeile=0 
03.
for /f "tokens=1,2 delims=/ " %%A in (datei.dat) do call :ProcessLine "%%A" "%%B" 
04.
goto :eof 
05.
 
06.
:ProcessLine 
07.
App1 -u=test -p=test1 -g=ads -Jahre=%~1 -Alter=%~2 -Check=All -debug > %~1_%~2_Summe.txt 
08.
set /a Zeile+=1 
09.
if %Zeile% lss 20 goto :eof 
10.
set /a Zeile=0 
11.
call batch2.bat 
12.
goto :eof
Grüße
bastla
Bitte warten ..
Mitglied: Biber
14.05.2008 um 19:35 Uhr
Moin alle,

.... wobei mir nur als Fussnote zu sagen bleibt, dass es sinnvoll sein könnte, wenn der Batch2 mindestens einmal läuft,
auch wenn es nur insgesamt 19 Dateien sind oder eben 99.
Denn in diesen Fällen würden die letzten 19 Dateien ja nie den Genuss kommen, von Batch2 nachbehandelt zu werden.
Ich würde also vor dem ersten "goto :eof" noch eine Zeile einfügen:
01.
IF %Zeile% GTR 0 call Batch2.bat
[Vorteil: Dann kannst Du auch das Testen der Funktionalität mit nur 3 Testdateien oder weniger machen...]

Grüße
Biber
Bitte warten ..
Mitglied: tkline
15.05.2008 um 10:36 Uhr
Perfekt.
Hat einwandfrei funktioniert.

Was wär ich ohne euch...
Fettes Merci!

Greets
TOM
Bitte warten ..
Ähnliche Inhalte
Batch & Shell
gelöst Verschachtelte FOR-Schleife mit einem Argument (3)

Frage von mp-home zum Thema Batch & Shell ...

Batch & Shell
gelöst Fehler in Schleife (2)

Frage von miczar zum Thema Batch & Shell ...

Batch & Shell
For Schleife in einer .sh Datei (4)

Frage von CrystalFlake zum Thema Batch & Shell ...

Batch & Shell
Zwei Ergänzungen in einer For Schleife

Frage von charmeur zum Thema Batch & Shell ...

Neue Wissensbeiträge
Windows Update

Microsoft Update KB4034664 verursacht Probleme mit Multimonitor-Systemen

(3)

Tipp von beidermachtvongreyscull zum Thema Windows Update ...

Viren und Trojaner

CNC-Fräsen von MECANUMERIC werden (ggf.) mit Viren, Trojanern, Würmern ausgeliefert

(4)

Erfahrungsbericht von anteNope zum Thema Viren und Trojaner ...

Windows 10

Windows 10: Erste Anmeldung Animation deaktivieren

(3)

Anleitung von alemanne21 zum Thema Windows 10 ...

Heiß diskutierte Inhalte
Netzwerkgrundlagen
Kann auf Freigabe nicht Zugreifen (19)

Frage von leon123 zum Thema Netzwerkgrundlagen ...

Windows Server
gelöst Neues KB für W10 1607 und W2K16 wieder mal nicht im WSUS 3.0, hat das noch jemand? (16)

Frage von departure69 zum Thema Windows Server ...

Windows Server
DC virtualisieren + wie sichern (SingleDC-Environment) (12)

Frage von KMUlife zum Thema Windows Server ...

Festplatten, SSD, Raid
RAID Controller mit Trim-Funktion, wie ermitteln (11)

Frage von pixel24 zum Thema Festplatten, SSD, Raid ...