Batch-/Shellscript VBS Problem Exe aufrufen

Bububoomt

ohne Vertrauen
ID: 10361
L
28 April 2006
19.666
769
Hallo ich habe folgende VBS Datei:

Code:
Option Explicit
Dim objShell
Set objShell=WScript.CreateObject("WScript.Shell")
objShell.Run "iexplore -k "+objShell.SpecialFolders("Desktop")+"\xyz\starttext.html"
wscript.sleep 120000
objShell.Run """C:\Dokumente und Einstellungen\User\Desktop\xyz\Datei.exe"""

Das funktioniert soweit, aber was ich will ist eigentlich auch in der letzten Zeile objShell.SpecialFolders("Desktop") zu nutzen, da das öfters genutzt werden soll und ja der Desktoppfad (User-Ordner) nicht identisch ist.


Code:
Option Explicit
Dim objShell
Set objShell=WScript.CreateObject("WScript.Shell")
objShell.Run "iexplore -k "+objShell.SpecialFolders("Desktop")+"\xyz\starttext.html"
wscript.sleep 120000
objShell.Run objShell.SpecialFolders("Desktop")+"\xyz\Datei.exe"

funktioniert nicht, erhalte nach 120 Sek Fehlermeldung, das die Datei nicht gefunden werden konnte.
 
Versuchs mal mit:

Code:
Option Explicit
Dim objShell
Set objShell=WScript.CreateObject("WScript.Shell")
objShell.Run "iexplore -k "+objShell.SpecialFolders("Desktop")+"\xyz\starttext.html"
wscript.sleep 120000
objShell.Run Chr(34) & objShell.SpecialFolders("Desktop")+"\xyz\Datei.exe" & Chr(34)

Damit bekommst Du dann die "Extragänsefüßchen", damit die Leerzeichen in "Dokumente und Einstellungen" korrekt verarbeitet werden.
 
ich teste das gleich mal, wieso geht das bei dem davor? Zwei Zeilen höher?

*edit*
Klappt, danke.
Versteh aber halt nciht wieso Zeile 4 geht!?
 
Naja, der Shellinterpreter sucht bis zum ersten Leerzeichen nach der executeable, was danach kommt übergibt er der executeable als Argumentstring.

Bei
"C:\Dokumente und Einstellungen\user\Desktop\bla.exe -option"

wird das Programm 'C:\Dokumente' mit den Argumenten 'und Einstellungen\user\Desktop\bla.exe -option' aufgerufen,

bei
"iexplore -k "+objShell.SpecialFolders("Desktop")+"\xyz\starttext.html"

wird das Programm 'iexplore' mit den Argumenten '-k C:\Dokumente und Einstellungen\user\Desktop\xyz\starttext.html' aufgerufen.


Da ist der Explorer eben schlauer als der Shellinterpreter.
 
ok, danke, das erklärt alles. Sowas in die richtung hatte ich schon gedacht, das es wegen dem Parameter geht... War mir aber unsicher.