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, 4826 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
PHP
gelöst PHP Key - Value Dictionary in einer Schleife erzeugen (3)

Frage von facebraker zum Thema PHP ...

Windows 10
Win10: Remotedektopdienst regelmäßig neu starten (6)

Frage von StefanMUC zum Thema Windows 10 ...

Windows 7
gelöst Programme starten nicht und werden nicht installert (4)

Frage von Zoom78 zum Thema Windows 7 ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Systemdateien
gelöst NTFS und die Defragmentierung (29)

Frage von WinLiCLI zum Thema Windows Systemdateien ...

Server-Hardware
Treiber für Server gesucht (15)

Frage von MeisterFuchs zum Thema Server-Hardware ...