Hallo liebe Batch-Programmierer,
für folgendes Problem suche ich eine Lösung.
Ich versuche, Euch das Problem möglichst genau zu schildern:
In unserem Unternehmen ist eine "Start-GUI" im Einsatz, welche dazu dient, andere Applikationen mit entsprechend vorher eingestellten Parametern zu starten.
Aus der "Start-GUI" heraus wird zudem ein Command-Fenster geöffnet, in welchem ein paar echo-Ausgaben stattfinden.
Nach Auswahl der entsprechenden Parameter innerhalb des "Start-GUI" wird eine Applikation gestartet.
Parallel wird im Hintergrund ein Netzwerklaufwerk gemappt, und zwar mit dem NÄCHST FREIEN LAUFWERKSBUCHSTABEN (GetFirstFreeDriveLetter)
Der Laufwerksbuchstabe kann, (aber muss nicht zwingend) A:\ sein. Ich nenne ihn hier mal "%LW%"
Das verbundene Netzwerklaufwerk ist für die Funktion der gestarteten Applikation zwingend notwendig.
So lange die Applikation läuft, bleibt auch das Command-Fenster geöffnet.
Erst beim Schließen der Applikation wird das Laufwerk per "net use %LW% /DELETE" wieder sauber abgeklemmt und das Command-Fenster geschlossen.
Folgendes Problem tritt ein:
Der Anwender schließt das Command-Fenster.
Dies hat für die Applikation keinerlei Auswirkung, da das Laufwerk bereits gemappt ist. Allerdings ist der Task nun gestorben und das Laufwerk wird bei beenden der Applikation nicht mehr abgeklemmt.
Was passiert?
-Die Start-GUI und die Applikation wird erneut gestartet
-Das Command-Fenster öffnet sich wieder.
-Der nächste, freie Laufwerksbuchstabe wird gemappt - > jetzt B:\
-Der Benutzer schließt das Command-Fenster
-...und verbindet sich nach und nach alle zur Verfügung stehenden Laufwerksbuchstaben D:\, E:\, F:\ ,bis alle vergeben sind.
Das sieht dann in etwa so aus:
A: \\merkur\STARTGui\conf\_share_
B: \\merkur\STARTGui\conf\_share_
C: Lokaler Datenträger
D: Wechseldatenträger
E: Wechseldatenträger
F: Wechseldatenträger
G: Wechseldatenträger
H: DVD-Laufwerk
I: \\merkur\STARTGui\conf\_share_
J: \\merkur\STARTGui\conf\_share_
usw....
Der net use sagt folgendes:
C:\Documents and Settings\[user]>net use
New connections will be remembered.
Status Local Remote Network
----------------------------------------------------------------------------------------------------------------------------
OK A: \\merkur\STARTGui\conf\_share_ Microsoft Windows Network
OK B: \\merkur\STARTGui\conf\_share_ Microsoft Windows Network
OK I: \\merkur\STARTGui\conf\_share_ Microsoft Windows Network
OK Z: \\pluto\private$ Microsoft Windows Network
The command completed successfully.
C:\Documents and Settings\[user]>
Die Batch, die gestartet wird müßte um folgendes ergänzt werden:
1: Abrage: existiert das Netzwerklaufwerk "\\merkur\STARTGui\conf\_share_" ?
2: Bedingung: wenn Ja, dann unter welchem Buchstaben? Wenn Nein, starte die Applikation
3: Aktion: Trenne den Laufwerksbuchstaben.%LW%
4: Abfrage: existiert ein weiteres Netzwerklaufwerk "\\merkur\STARTGui\conf\_share_" ?
5: Bedingung: wenn Ja, dann unter welchem Buchstaben? Wenn nein Starte die Applikation.
Damit wäre klar, was gemeint ist. Es darf beim start der "Start-GUI" nur ein Netzwerklaufwerk "\\merkur\STARTGui\conf\_share_" mit Variablem Laufwerksbuchstaben vorhanden sein.
Die Lösung muss im Batch programmiert sein.
Kein VB oder andere "Tricks" wie Fenster verbergen, etc... sind erlaubt!
Wer kann mir hier helfen?
Bei Fragen stehe ich gerne zur Verfügung
Schonmal vielen Dank im Voraus
Uli