VBS Skript soll Verknüpfung erstellen ohne Anführungszeichen

Verderbaer

Cadet 1st Year
Registriert
Jan. 2012
Beiträge
12
Gude,

bin grad dabei per VBS Skript eine Verknüpfung erstellen zu lassen,
habe dabei das Problem das ich folgendes Ziel erhalte:

"C:\Programme\Lotus\Notes\notes.exe =C:\Dokumente und Einstellungen\user\Data\notes.ini"

Was aber nicht funktioniert, sondern erst nachdem man das vordere " entfernt und es vor das = setzt, also:

C:\Programme\Lotus\Notes\notes.exe "=C:\Dokumente und Einstellungen\user\Data\notes.ini"

Es liegt vermutlich daran das bei Dokumente und Einstellungen leerzeichen vorhanden sind,
denn bei einfachen Zielen wie C:\Programme\Lotus\Notes\notes.exe entstehen keine "".

Hoffe einer von kann mir da weiterhelfen.

Zur besseren Verständnis:

Code:
set WshShell = CreateObject("WScript.Shell")

Ziel = "C:\Programme\Lotus\Notes\notes.exe =" & WshShell.ExpandEnvironmentStrings("%userprofile%") & "\Data\notes.ini"

Const strProgramtitel="Lotus Notes"
strProgram = "C:\Programme\Lotus\Notes\notes.exe"
Dim objShortcut
Dim objShell
Set objShell= WScript.CreateObject("Wscript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
strLPfad=objShell.SpecialFolders("AllUsersDesktop")
Set objShortcut=objShell.CreateShortcut(strLPfad & "\" & strProgramtitel & ".lnk")
objShortcut.TargetPath= Ziel
objShortcut.Description= "Lotus Notes-client"
objShortcut.IconLocation = "\\pfadzumicon.ico"
objShortcut.WorkingDirectory = "C:\Programme\Lotus\Notes\framework\"
objShortcut.Save
 
Das wird sehr wahrscheinlich an den Leerzeichen im Namen liegen, beim erstellen der Verknüpfung werden die automatisch eingefügt. Um das zu verhinden, könnte es helfen die Befehlszeilenargumente als solche auch zu übergeben und nicht alles zusammen als 1 String:
Code:
objShortcut.TargetPath= "C:\Programme\Lotus\Notes\notes.exe"
objShortcut.Arguments= "=" & WshShell.ExpandEnvironmentStrings("%userprofile%") & "\Data\notes.ini"
Bei mir unter Win7 war es auf die schnelle überhaupt nicht möglich, einen String wie du ihn zusammengebaut hast als TargetPath zu verwenden (ungültiger Aufruf/Argument).

Gruß
Spike
 
Perfekt, danke vielmals Spike!

Mir war das .Arguments nicht geläufig, nun funktioniert es tadellos.

Unter XP war das mit einem String kein Problem ^^
 

Ähnliche Themen

Zurück
Oben