vbs script geht noch nicht ganz

ghostadmin

Grand Admiral Special
Mitglied seit
11.11.2001
Beiträge
25.208
Renomée
189
Standort
Dahoam Studios
Code:
Option Explicit
rem On Error Resume Next
Const WAIT_ON_RETURN = True
Const HIDE_WINDOW = 0

Dim objArgs
Set objArgs = WScript.Arguments

if objArgs(2) = "" then

	WScript.Echo "Please specify all arguments: linkpath, linkname, targetfile, (optional: parameters)"
else

   	Call CreateLink(objArgs(0),objArgs(1),objArgs(2),objArgs(3))

end if

Sub CreateLink(linkpath,linkname,targetfile,parameter)
   
   Set WshShell = WScript.CreateObject("WScript.Shell")
   Dim WshShell, objEnv,sysdrive,sLinkFile,sLinkFolder,cFolder,oLink
   Set objEnv = WshShell.Environment("PROCESS")
   sysdrive = objEnv("SystemDrive")
   sLinkFile = sysdrive & "\" & linkpath & "\" & linkname & ".lnk"
   WScript.Echo "Link File: " & sLinkFile
   sLinkFolder = sysdrive & "\" & linkpath
   WScript.Echo "Link Folder: " & sLinkFolder
   cFolder = "cmd /c md """ & sLinkFolder & """"
   WshShell.Run cFolder, HIDE_WINDOW, WAIT_ON_RETURN
   Set oLink = WshShell.CreateShortcut(sLinkFile)
   if parameter = "" then
	oLink.TargetPath = targetfile
	else
	oLink.TargetPath = """" & targetfile & """" & " " & parameter
   end if
   oLink.Save
   WScript.Echo "Target File: " & oLink.TargetPath  

End Sub

und zwar diese Zeile:
oLink.TargetPath = """" & targetfile & """" & " " & parameter

ohne Parameter kann ich einwandfrei Links erzeugen z.B.

c:\programme\tightvnc\vncviewer.exe

aber mit Parameter kommt sowas bei raus:

"C:\"c:\programme\tightvnc\vncviewer.exe" -compresslevel 9 -quality 0

ich möchte aber:

"c:\programme\tightvnc\vncviewer.exe" -compresslevel 9 -quality 0

der Aufruf erfolgt aus einem Post Install Wizard (WPI) für unattended setup heraus:

Code:
cmd3[pn]=['cscript.exe %CDROM%\\install\\tools\\link.vbs "Dokumente und Einstellungen\\All Users\\Startmenü\\Programme\\Tightvnc" "TightVNC Viewer (Best Compression)" "c:\\programme\\tightvnc\\vncviewer.exe" "-compresslevel 9 -quality 0"']

jemand ne Idee?
Beide Parameter von vornherein zusammenfassen geht AFAIK nicht
 
Ich kapier jetzt nicht warum er den Laufwerksbuchstaben 2x einfügt (vll. ist das irgendne Sicherheitsfunktion, die hier für Probleme sorgt? *noahnung*), aber das hier sollte als Workaround funktionieren:
oLink.TargetPath = Mid(targetfile, 4) & """" & " " & parameter

Du lässt quasi das Anführungszeichen und die Laufwerksangabe weg. Problematisch wird es vermutlich, wenn targetfile und die Verknüpfung auf verschiedenen Laufwerken liegen.

TiKu (der wo müde ist und im Gegensatz zu VB von VBS keinen Plan hat)
 
Zurück
Oben Unten