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, 22346 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
Basic
VBScript erweitern für Subfolder (8)

Frage von 132078 zum Thema Basic ...

Windows 7
VBScript - HTML Probleme mit Schriftgröße (5)

Frage von MedicalAd zum Thema Windows 7 ...

VB for Applications
gelöst Per Vbscript bestimmte Zeile ungeachtet der Nummerierung prüfen (7)

Frage von aletri zum Thema VB for Applications ...

Entwicklung
gelöst Get ip from external txt file and use in vbscript (5)

Frage von thankusomuch zum Thema Entwicklung ...

Heiß diskutierte Inhalte
Windows Installation
Eine etwas (wirklich) speziellere Frage: Windows 10-Installation über (16)

Frage von DerFurrer zum Thema Windows Installation ...

Multimedia & Zubehör
gelöst Iphone 6 prob (10)

Frage von jensgebken zum Thema Multimedia & Zubehör ...

Netzwerkgrundlagen
gelöst Cisco SG500 Series LAG hat sich von selbst umgestellt (10)

Frage von Ex0r2k16 zum Thema Netzwerkgrundlagen ...

Linux
gelöst Boot failed: not a bootable disk (10)

Frage von Fleckmen zum Thema Linux ...