lifeisaglitch
Goto Top

WshShell.Run () Kompilierungsfehler !

WshShell.Run ("net use X: /d " , 0, True) schon dieser Einzeiler bringt mich und mein Windows aus der Bahn ^^

Moinsen,

WshShell.Run ("net use X: /d " , 0, True)

tja schon bei diesem einfachen einzeiler klappt es bei mir nicht :D

Fehler: Beim Aufruf einer Unterroutine dürfen keine Klammer verwendet werden.
Code: 800A0414

Da ich ein absoluter Noob bin, hoffe ich mal das mir jemand hierbei helfen kann face-smile
Ohne klammer klappt es natürlich nicht und google spuckt leider auch nix brauchbares
für mich aus, kann doch eigentlich nich sooo schwer sein.

Das ziel ist es einfach eine Batch-datei auszuführen ohne dass das cmd prompt sichtbar ist.
Btw. winxp pro sp2

Dankeschön.

Content-Key: 52423

Url: https://administrator.de/contentid/52423

Printed on: April 23, 2024 at 17:04 o'clock

Member: bastla
bastla Feb 23, 2007 at 05:59:51 (UTC)
Goto Top
Hallo lifeisaglitch!

Anmerkungen:
  • Als reiner Einzeiler kann das nix werden, zumindest ein
Set WshShell = WScript.CreateObject("WScript.Shell")  
vorweg musst Du dem Script schon spendieren - und dann bitte wirklich ohne Klammern weiter ...

  • Um interne CommandLine-Befehle zu verwenden, solltest Du dem Befehl ein "cmd /c " voranstellen.

  • Aber, wenn schon VBS, warum dann nicht gleich
Set WshNetwork = WScript.CreateObject("WScript.Network")  
WshNetwork.RemoveNetworkDrive "X:"  

Grüße
bastla
Member: Biber
Biber Feb 23, 2007 at 06:28:47 (UTC)
Goto Top
Moin LifeIsAGlitch,

willkommen im Forum.
tja schon bei diesem einfachen einzeiler klappt es bei mir nicht :D
willkommen beim Skripting.

Falls es Dich beruhigt - das o.b. Problem mit den einfachen Einzeilern habe ich jeden Tag.

Man/frau lernt, damit zu leben... face-wink

Gruss Biber
Member: AndreasHoster
AndreasHoster Feb 23, 2007 at 08:01:16 (UTC)
Goto Top
Um auf den Fehler zurückzukommen:
Beim Aufruf einer Unterroutine dürfen keine Klammer verwendet werden
bedeutet:
Bei einer Sub, also einer Unterroutine die keine Werte zurückliefert oder dem Aufruf eine Funktion, deren Wert man nicht auswertet, muß es entweder heißen:
WshShell.Run "net use X: /d " , 0, True
also keine Klammern oder
call WshShell.Run ("net use X: /d " , 0, True)
oder wir nehmen einfach den Wert zurück, benutzen es also als Funktion:
Variable = WshShell.Run ("net use X: /d " , 0, True)

Und ja, ein Objekt muß vorher erzeugt werden, also vorher noch
set wshshell = CreateObject("WScript.Shell")

Und für das Löschen von Netzlaufwerken mach es so wie Bastla es schreibt, ist besser als externen Kommandozeilenaufruf.
Member: lifeisaglitch
lifeisaglitch Feb 23, 2007 at 14:29:24 (UTC)
Goto Top
Hi Ihrs,

vielen Dank für die guten und sehr informativen Antworten face-smile
habe nun mein Problem gelöst und einiges gelernt.

Danke nochmals an alle hier.

Bis demnächst ^^