VBScript. Sleep einbauen?
Hallo zusammen,
ich hab ein VB-Script, welches im groben folgende Dinge durchführt:
- Standort ermitteln
- Username ermitteln
- Subst löschen
- Laufwerk mappen
- Bestimmte Dateien auf das neu gemappte Laufwerk kopieren.
Sporadisch kommt es jetz allerdings zu dem Problem, das er manchmal mit dem kopieren der Dateien anfangen will obwohl das Laufwerk wohl doch noch nicht 100 % gemapped ist.
Hier mal der verwendete Code für die kritischen Dinge. (Subst löschen und Laufwerk mappen funktioniert im Prinzip noch, lediglich die Dateien kann er nicht kopieren)
[code]
''Subst löschen:
Sub DelSubst
WshShell.run "subst.exe y: /D"
End Sub
''Laufwerk mappen
Sub HomeLaufwerkMappen(Server, Username)
WshShell.run "Net use Y: \\"&Server&"\zensiert
End Sub
''Files kopieren
Sub CopyNotes()
objFSO.CopyFolder "bla"
End if
End Sub
[/Code]
Jetz erstmal grundsätzlich eine Frage. Habt ihr ähnliche Probleme auch schonmal gehabt, oder liege ich völlig falsch mit meiner Vermutung, das es möglich ist, das das Script abbricht, weil eben besagtes Laufwerk noch nicht komplett geshared ist?
Gibt es eine Art "sleep"-Funktion innerhalb von vbscript?
Danke schonmal,
Andy
ich hab ein VB-Script, welches im groben folgende Dinge durchführt:
- Standort ermitteln
- Username ermitteln
- Subst löschen
- Laufwerk mappen
- Bestimmte Dateien auf das neu gemappte Laufwerk kopieren.
Sporadisch kommt es jetz allerdings zu dem Problem, das er manchmal mit dem kopieren der Dateien anfangen will obwohl das Laufwerk wohl doch noch nicht 100 % gemapped ist.
Hier mal der verwendete Code für die kritischen Dinge. (Subst löschen und Laufwerk mappen funktioniert im Prinzip noch, lediglich die Dateien kann er nicht kopieren)
[code]
''Subst löschen:
Sub DelSubst
WshShell.run "subst.exe y: /D"
End Sub
''Laufwerk mappen
Sub HomeLaufwerkMappen(Server, Username)
WshShell.run "Net use Y: \\"&Server&"\zensiert
End Sub
''Files kopieren
Sub CopyNotes()
objFSO.CopyFolder "bla"
End if
End Sub
[/Code]
Jetz erstmal grundsätzlich eine Frage. Habt ihr ähnliche Probleme auch schonmal gehabt, oder liege ich völlig falsch mit meiner Vermutung, das es möglich ist, das das Script abbricht, weil eben besagtes Laufwerk noch nicht komplett geshared ist?
Gibt es eine Art "sleep"-Funktion innerhalb von vbscript?
Danke schonmal,
Andy
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 95849
Url: https://administrator.de/contentid/95849
Ausgedruckt am: 08.11.2024 um 19:11 Uhr
3 Kommentare
Neuester Kommentar
Wenn Du mit WshShell.run etwas startest, läuft das parallel zum Skript weiter. Daher kann der net use Befehl noch nicht fertig sein, wenn Du mit dem kopieren anfängst.
Und es gibt sleep, aber das wäre Anfängerprogrammierung.
Am Besten wäre es, net use durch
zu ersetzen.
Alternativ kann man dem RUN Befehl auch sagen, daß er auf Abschluß warten soll.
WaitOnReturn = TRUE und es geht erst weiter, wenn der Befehl fertig ist.
Und zum Sleep:
Und es gibt sleep, aber das wäre Anfängerprogrammierung.
Am Besten wäre es, net use durch
Set wshnet = CreateObject("WScript.Network")
wshnet.MapNetworkDrive ">:","\\server\zensiert"
Alternativ kann man dem RUN Befehl auch sagen, daß er auf Abschluß warten soll.
wshshell.run Command, WindowStyle, WaitOnReturn
Und zum Sleep:
wscript.sleep dauer
Hallo Andy,
für deine Zwecke brauchst du keine "sleep" Funktion, sondern lediglich einen zusätzlichen Parameter - in deinem Falle so:
Dim strCommand
strCommand = "net net use y:\\" & servername & "\zensiert"
WshShell.run strCommand,,True
Der Schalter [True] läßt dein VBScript auf die vollständige Abarbeitung des externen Aufrufs warten, damit ist sichergestellt, dass das Lauferk gemappt ist.
Alternativ könnte man nach diesem Befehl noch in einer Schleife testen, ob du auf das gemappte Laufwerk zugreifen kann (mittels onjFSO-Methoden).
Gruß Bent
für deine Zwecke brauchst du keine "sleep" Funktion, sondern lediglich einen zusätzlichen Parameter - in deinem Falle so:
Dim strCommand
strCommand = "net net use y:\\" & servername & "\zensiert"
WshShell.run strCommand,,True
Der Schalter [True] läßt dein VBScript auf die vollständige Abarbeitung des externen Aufrufs warten, damit ist sichergestellt, dass das Lauferk gemappt ist.
Alternativ könnte man nach diesem Befehl noch in einer Schleife testen, ob du auf das gemappte Laufwerk zugreifen kann (mittels onjFSO-Methoden).
Gruß Bent