[WSH] Laufwerk darf kein String sein..?

cumulonimbus8

Fleet Admiral
Registriert
Apr. 2012
Beiträge
19.478
Hallo!

Code:
Dim Laufwerk, Ordner
Set FSO = CreateObject("Scripting.FileSystemObject")
'Set Laufwerk = FSO.Drives("G")
'Set Ordner = FSO.GetFolder("G" & ":\TEST")
Dim LW
LW="G"
Set Laufwerk = FSO.Drives(LW)
Set Ordner = FSO.GetFolder(LW & ":\TEST")
Wenn in diesem Fragment Zeilen 3 und 4 aktiv (und der Rest darunter auskommentiert) sind läuft es. Im gezeigten Zustand meint VBS:
Skript: C:\Bin\FSO-Attribute-Serie.vbs
Zeile: 7
Zeichen: 1
Fehler: Ungültiger Prozeduraufruf oder ungültiges Argument
Code: 800A0005
Quelle: Laufzeitfehler in Microsoft VBScript
Wieso kann ich das Laufwerk als hartcodierten String angeben, als Variable aber nicht?

Strukturen alle Laufwerke abzugrasen bis ich auf G Stoße gingen natürlich, und ich müsste dann, die Idee dahinter, nur einmal das G einbauen, aber für meinen kleinen Fall gehts mir ums Prinzip.

CN8
 
Schreib ein "Set" vor LW, wenn Du einen Wert zuweist, sonst gehts nicht :)

Code:
    Dim Laufwerk, Ordner
    Set FSO = CreateObject("Scripting.FileSystemObject")
    'Set Laufwerk = FSO.Drives("G")
    'Set Ordner = FSO.GetFolder("G" & ":\TEST")
    Dim LW
    Set LW="G"    <---------------
    Set Laufwerk = FSO.Drives(LW)
    Set Ordner = FSO.GetFolder(LW & ":\TEST")
 
Tut nicht. Siehe gleich

Das hatte ich nämliche auch schon versucht, aber vergessen das zu schreiben (kam ein spinnender Rauchmelder dazwischen).

Der Fehler sieht jetzt anders aus - und noch viel doller:
Skript: C:\Bin\FSO-Attribute-Serie.vbs
Zeile: 6
Zeichen: 1
Fehler: Objekt erforderlich: '[string: "G"]'
Code: 800A01A8
Quelle: Laufzeitfehler in Microsoft VBScript
Ja, er stört sich tatsächlich an Set LW="G"!
»Was sagste nu, Herr Hildebrand??«

CN8
 
OK, Runde 2:

Code:
Dim LW As String
LW = "G"

bei mir läufts damit an der Zeile vorbei :)
 
Mir wäre neu, dass ich beim WSH (nicht etwa VBA, sondern VBS) überhaupt ein Dim-As verwenden kann. Nach gewissen Lektüren werden Variablen vom System verwaltet.
Wenn sich das geändert hat will ich das mal morgen testen.

CN8
 
Es soll halt nicht sein :cool_alt:

Mein Problem was der Aktion zu Grunde liegt hab ich nach einigem Gerzikel hinbekommen. Ging um Acronis TrueImage und das Löschen veralteter Images wenn ›heute‹ das tagesaktuelle angelegt wird. Jämmerlich dass ein Kaufprogramm einem unkontrollierbare Mechanismen aufzwingt und sonst noch Hindernisse aufwirft. Alles unmögliche geht, das Mögliche nie…

CN8
 
Zurück
Oben