Ich versuche, Daten von einem SQL-Server und LDAP-Server für mehrere Clients zu erhalten. Ich muss zuerst die SQL-Daten und dann die LDAP-Daten abrufen. In der Unix-Shell war es einfach, eine Schleife um einen Unterprozess zu machen, wobei beide Abfragen für jeden Client ausgeführt wurden und dann darauf gewartet wurde, dass sie abgeschlossen war. Als Windows Batch-Datei passiert es jedoch sequentiell. I.e. bis ich die Daten für einen Client abrufe, geht es nicht zum nächsten. Wie kann ich die Daten jedes Kunden gleichzeitig erhalten? Hier ist, was ich habe:Windows-Batch-Datei mit Start nicht mehrere Progamme im Hintergrund
REM Get DB and client info. from config file
for /F "tokens=1,2,3,4,5,6 delims=| eol=#" %%G in (%cfg%\%env%.data) do (
REM Mark file as being in process of receiving data
type nul > %%K.tmp
REM Get data and remove tmp file to indicate completion
start cmd /C sqlcmd .... -Q "A long query" ^> %%K.dat1 && "c:\Program Files\Softerra\LDAP Administrator 4\laimex.exe" ... /sql "Another query" > %%K.dat2 && del %%K.tmp
)
Aus irgendeinem Grund, ich brauche die erste Umleitung zu tun entkam als ^>, während die spätere nicht, dass müssen. An dieser Stelle gehe ich davon aus, dass alles im Hintergrund abgerufen wird und dass ich danach überprüfen muss, wann die Prozesse abgeschlossen sind, was ich tun würde, indem ich die Existenz der von mir erstellten temporären Null-Byte-Dateien überprüfe. Was jedoch passiert, ist, dass jede Iteration durch die Schleife nur dann beginnt, wenn der vorherige abgeschlossen ist, anstatt sofort aufzutauchen, indem sie im Hintergrund platziert wird. Kann jemand vorschlagen, wie ich das beheben kann?
Danke, Ben
Hinweis: Anstelle von 'Token = 1,2,3,4,5,6' es ist auch möglich, zu spezifizieren 'Tokens = 1-6'. Nun, ich verstehe nicht, warum die ersten 6 Tokens angegeben werden, da der gebuchte Batch-Code nur Token 1 und 2 mit '%% G' und' %% K' verwendet. – Mofi
Es ist gut zu wissen, dass Tokens = 1-6 verwendet werden können, anstatt sie einzeln aufzulisten. Alle Tokens werden verwendet, aber ich habe die meisten Zeilenoptionen entfernt und durch "..." ersetzt, damit sie nicht in die Richtung dessen, was ich gefragt habe, stören würden und was ich tun würde, wäre leichter zu sehen. – Ben