Befehle in VBS verschachteln?

Guten Tag,

ich habe eine allgemeine Frage zu VBScript ( oder auch andere Programmiersprachen?) :

In vielen Beispielen aus dem internet sind die anweisungen aufgeteilt, beispiel:

Const PROGRAM\_FILES = &H26&

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(PROGRAM\_FILES)
Set objFolderItem = objFolder.Self
Wscript.Echo objFolderItem.Path

im test funktioniert das jedoch auch mit nur einer zeile :

wscript.echo CreateObject("Shell.Application").Namespace(&H26&amp:wink:.Self.Path

hat diese variante irgendwelche nachteile?

danke für eure hilfe!

arlecks

Hi

CreateObject(„Shell.Application“).Namespace(&H26&amp:wink:.Self.Path
hat diese variante irgendwelche nachteile?

klar, ist einfach schlechter lesbar. Wenn Du nach einem
Jahr mal irgendwas ändern mußt, bist Du wahrscheinlich
froh, wenn Du Dich für die erste Variante entschieden hast.

LG Alex

danke für die Antwort!

trotzdem noch eine (theoretische) Frage:

Set objShell = CreateObject("Shell.Application")
Set objFolder = objShell.Namespace(PROGRAM\_FILES)
Set objFolderItem = objFolder.Self

wird nicht in jeder Zeile hier (unnötigerweise) eine neuer Variable erstellt?
wenn man nun 99999999999… anweisungen von der langen, übersichtlicheren variante benutzt und den ressourcenverbrauch vergleicht mit genausovielen Ausführungen der 1-Zeile-Variante, so müssten sich die 3 variablen pro lange anweisung doch bemerkbar machen, oder?

oder wird vom system/cpu/was da sonst noch so alles rumwerkelt sowieso die 1-zeilen-variante auf einzelne speicherplätze gelegt?

(wie gesagt, sehr theoretisch, ich hoffe du blickst bei meinem szenario durch :smile:

danke für die hilfe!

arlecks

Hallo,

Set objShell = CreateObject(„Shell.Application“)
Set objFolder = objShell.Namespace(PROGRAM_FILES)
Set objFolderItem = objFolder.Self

wird nicht in jeder Zeile hier (unnötigerweise) eine neuer
Variable erstellt?

noch schlimmer, ein Objekt.

wenn man nun 99999999999… anweisungen von der langen,
übersichtlicheren variante benutzt und den ressourcenverbrauch
vergleicht mit genausovielen Ausführungen der
1-Zeile-Variante, so müssten sich die 3 variablen pro lange
anweisung doch bemerkbar machen, oder?

Nein. Wenn das Programm länger wird, wirst Du die Objekte für verschiedene Zwecke verwenden, musst sie nicht jedes Mal neu erzeugen.

Mit FSO kann man nicht nur einen Pfad lesen, sondern auch Dateilängen ermitteln, Dateien lesen und schreiben.
Mit Deinem Einzeiler erzeugst Du dabei jedes mal ein neues Filesystemobjekt, satt am Anfang nur eins zu erzeugen und das dann immer zu verwenden.

Deshalb nehme ich an, daß die andere Variante meist auch Ressourcenschonender ist.

Gruß Rainer