g0di 10 Geschrieben 21. Oktober 2008 Melden Teilen Geschrieben 21. Oktober 2008 Hi, also ich hab mal folgendes Problem. Ich mach hier grad nen Script das bei der Anmeldung von Nutzern ausgeführt wird. Vom Prinzip machts nichts anderes als ein Netzlaufwerk zu verbinden, abhängig von der Eingabe die der Nutzer macht. Es funktioniert soweit auch ganz gut, das Problem ist das bei falscher Eingabe eine erneute Eingabe möglich sein soll. bisher schaut das Ding so aus: On Error Resume Next 'ALTES NETZLAUFWERK TRENNEN Set WshNetwork = CreateObject ("WScript.Network") WshNetwork.RemoveNetworkdrive "L:" 'ABFRAGE NACH RAUMNUMMER Abfrage = InputBox("Bitte Raumnummer des Hörsaals angeben zu dem ein Netzlaufwerk verbunden werden soll Beispiel: 8-1-108",,"Transfer-01") '------------------------------------------------------------------------------------------------------------------------------- 'VERBINDUNG WIRD HERGESTELLT FÜR Transfer-01 IF Abfrage="Transfer-01" then Set objnet = CreateObject("WScript.Network") objnet.MapNetworkDrive "L:", "\\190.66.24.74\Transfer-01 ( 8-1-108 )" WScript.Echo "Es wurde Netzlaufwerk zu Transfer-01 ( 8-1-108 ) verbunden" WScript.quit End If '-------------------------------------------------------------------------------------------------------------------------------- 'VERBINDUNG WIRD HERGESTELLT FÜR Transfer-02 IF Abfrage="Transfer-02" then Set objnet = CreateObject("WScript.Network") objnet.MapNetworkDrive "L:", "\\190.66.24.74\Transfer-02 ( 7-G-073 )" WScript.Echo "Es wurde Netzlaufwerk zu Transfer-02 ( 7-G-073 ) verbunden" WScript.quit else WScript.Echo "Es ist ein Fehler aufgetreten oder Aktion wurde abgebrochen - Es wurde kein Netzlaufwerk verbunden" Frage = MsgBox("nochmal versuchen?", _ vbYesNo + vbQuestion, "Frage") If Frage = vbYes then WScript.Echo "lobenswert, geht aber nicht, sorry" Else WScript.Echo "wozu auch, hätte eh nicht funktioniert" End If WScript.quit End If Wenn am Ende die Frage "nochmal versuchen" kommt, soll das Script einfach von vorn gestartet werden wenn die Frage mit Ja beantwortet wird. Mit nem "goto" o.ä. scheint es irgendwie nicht zu gehen bzw ich bekomm es nicht hin. Das einfachste wäre wars***einlich ne Schleife, nur hab ich vom scripten soviel Ahnung wie nen Blinder von der Farbe von daher benötige ich hier Eure Hilfe. Schonmal danke .... :-) Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 21. Oktober 2008 Melden Teilen Geschrieben 21. Oktober 2008 Moin, statt die Eingaben einzeln durchzuprüfen, könntest du ein "Select..Case" nutzen und die eigentliche Verbindung in eine Funktion auslagern, statt den Code x-mal zu wiederholen. Dann noch eine Gültigkeitsprüfung und eine While..Wend-Schleife und fertig: blnKorrekt = False While Not blnKorrekt strEingabe = InputBox("Bitte was eingeben!") Select Case strEingabe Case "Wurst" Machwas 1 Case "Käse" Machwas 2 Case Else MsgBox "Falsch!" End Select Wend MsgBox "Hier gehts weiter" Sub Machwas(intWert) blnKorrekt = True MsgBox "Ich meine: " & intWert End Sub Gruß, Nils Zitieren Link zu diesem Kommentar
g0di 10 Geschrieben 22. Oktober 2008 Autor Melden Teilen Geschrieben 22. Oktober 2008 Das schaut ja schonmal sehr gut aus , danke dafür ! :-) das Problem an der Sache ist, dass jemand wie ich es so umschreiben muss das es auch das macht was ich will :-) Wenn ich das richtig verstanden hab dann muss ich doch da wo jetzt "machwas 1" steht den Netzwerkpfad definieren oder ? Also sieht das bei mir jetzt so aus: Case "T1" Pfad "\\190.66.24.74\Transfer-01 ( 8-1-108 )" Der Sub-Teil ( ich nen das einfach mal so :-P ) sieht so aus: Sub Pfad(intWert) blnKorrekt = True Set objnet = CreateObject("WScript.Network") objnet.MapNetworkDrive "T:", & intWert WScript.Echo "Es wurde Netzlaufwerk " & intWert & " verbunden" End Sub In dieser Zeile hier..... objnet.MapNetworkDrive "T:", & intWert ...bekomm ich einen Syntaxfehler wenn ich das Script ausführe ... Wenn ich anstelle von "& intWert" direkt den Pfad angebe wird zumindest schonmal nen Netzlaufwerk verbunden also vermute ich mal das es an dem "intWert" liegt ?! Für jede Hilfe bin ich sehr dankbar :-P Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 22. Oktober 2008 Melden Teilen Geschrieben 22. Oktober 2008 Moin, das Problem an der Sache ist, dass jemand wie ich es so umschreiben muss das es auch das macht was ich will :-) allgemein wäre es von Nutzen, dass du dir Scripting-Kenntnisse aneignest, wenn du Scripting machen willst. Ich empfehle die Bücher von Tobias Weltner und von Günter Born. In dieser Zeile hier..... objnet.MapNetworkDrive "T:", & intWert ...bekomm ich einen Syntaxfehler wenn ich das Script ausführe ... Ja, das & ist zuviel. Das benutzt man nur, wenn man zwei Strings miteinander verbinden will. Gruß, Nils Zitieren Link zu diesem Kommentar
g0di 10 Geschrieben 22. Oktober 2008 Autor Melden Teilen Geschrieben 22. Oktober 2008 saubere Sache , Script läuft nun genau so wie ich mir das vorgestellt habe. Einziges Problem war das es solange lief bis eine richtige Eingabe erfolgt ist. Aber das hab ich dann doch noch allein gelöst:-P Ich danke Dir für Deine Hilfe ! Zitieren Link zu diesem Kommentar
NilsK 2.934 Geschrieben 22. Oktober 2008 Melden Teilen Geschrieben 22. Oktober 2008 Gern. Danke für die Rückmeldung. Gruß, Nils Zitieren Link zu diesem Kommentar
Empfohlene Beiträge
Schreibe einen Kommentar
Du kannst jetzt antworten und Dich später registrieren. Falls Du bereits ein Mitglied bist, logge Dich jetzt ein.