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

VBScript. Sleep einbauen?

Frage Entwicklung VB for Applications

Mitglied: Vip0r

Vip0r (Level 1) - Jetzt verbinden

02.09.2008, aktualisiert 11:55 Uhr, 22830 Aufrufe, 3 Kommentare

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
Mitglied: AndreasHoster
02.09.2008 um 09:40 Uhr
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
01.
Set wshnet = CreateObject("WScript.Network") 
02.
wshnet.MapNetworkDrive ">:","\\server\zensiert" 
zu ersetzen.
Alternativ kann man dem RUN Befehl auch sagen, daß er auf Abschluß warten soll.
01.
wshshell.run Command, WindowStyle, WaitOnReturn
WaitOnReturn = TRUE und es geht erst weiter, wenn der Befehl fertig ist.
Und zum Sleep:
01.
wscript.sleep dauer
Bitte warten ..
Mitglied: SchraderCC
02.09.2008 um 10:37 Uhr
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
Bitte warten ..
Mitglied: Vip0r
02.09.2008 um 11:55 Uhr
Aja, hervorragend!

Die sauberste Lösung wäre wohl das mappen mittels des Wscript.Network Objekts. Da ich mir das komplette umcoden jedoch sparen möchte werd ich die Erweiterung WaitOnReturn einbauen.
Bitte warten ..
Ähnliche Inhalte
VB for Applications
gelöst Vbscript Fehlercode: Object required (2)

Frage von aletri zum Thema VB for Applications ...

VB for Applications
gelöst Per vbscript xml Knoten an bestehenden Knoten anhängen (1)

Frage von aletri zum Thema VB for Applications ...

Batch & Shell
gelöst Dateinamen auslesen und in Code einbauen (10)

Frage von markue zum Thema Batch & Shell ...

VB for Applications
gelöst HTML, VBScript: Bei Drop-Down-Auswahl bestimmte Radio-Buttons einblenden (3)

Frage von Yauhun zum Thema VB for Applications ...

Neue Wissensbeiträge
Heiß diskutierte Inhalte
Windows Update
MS: Update-Server-Adressen OHNE Wildcards (16)

Frage von mrserious73 zum Thema Windows Update ...

Viren und Trojaner
Ransomware .nm4 (11)

Frage von Zyklo92 zum Thema Viren und Trojaner ...

Microsoft Office
+1.000 Ordner in Outlook: Wie besser? (11)

Frage von Matsushita zum Thema Microsoft Office ...