lifeisaglitch

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.
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen

Content-ID: 52423

Url: https://administrator.de/forum/wshshell-run-kompilierungsfehler-52423.html

Ausgedruckt am: 21.05.2025 um 23:05 Uhr

bastla
bastla 23.02.2007 um 06:59:51 Uhr
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
Biber
Biber 23.02.2007 um 07:28:47 Uhr
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
AndreasHoster
AndreasHoster 23.02.2007 um 09:01:16 Uhr
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.
lifeisaglitch
lifeisaglitch 23.02.2007 um 15:29:24 Uhr
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 ^^