opsi-script: Fehlerhafte Stringverarbeitung in LinkFolder
Verfasst: 22 Jun 2018, 08:39
Hallo allerseits,
für das Erzeugen von Links sind in einem Anwendungsfall eine Reihe von Parametern zu übergeben. Die Verarbeitung des Strings ist in diesem Fall jedoch fehlerhaft.
Deutlicher wird das am Beispielcode:
Da der Parameter-String Pfade mit Leerzeichen enthält, sind diese in Anführungszeichen zu setzen. Somit beginnt der String hier mit einem Anführungszeichen, was den Fehler verursacht: es bleibt nur der erste Teil des Strings übrig.
Beginnt der String jedoch mit einem anderen Zeichen (ausser Space; im obigen Beispiel '-v' oder 'dir='), ist der erzeugte Link korrekt.
Version opsi-script: 4.12.0.21
Viele Grüsse,
Jens
für das Erzeugen von Links sind in einem Anwendungsfall eine Reihe von Parametern zu übergeben. Die Verarbeitung des Strings ist in diesem Fall jedoch fehlerhaft.
Deutlicher wird das am Beispielcode:
Code: Alles auswählen
[actions]
setLogLevel=9
DefVar $AppName$
DefVar $AppTarget$
DefVar $AppParameters$
DefVar $InstallDir$
set $AppName$ = "Awesome Applic"
set $InstallDir$ = "c:\App Dir\"
set $AppTarget$ = '"' + $InstallDir$ + 'app.exe"'
; Parameter werden korrekt im Link gesetzt:
;set $AppParameters$ = 'dir="' + $InstallDir$ + 'modules\" "' + $InstallDir$ + 'mod1.bin"'
;set $AppParameters$ = '-v "' + $InstallDir$ + 'modules\" "' + $InstallDir$ + 'mod1.bin"'
; Parameter werden FALSCH im Link gesetzt:
set $AppParameters$ = '"' + $InstallDir$ + 'modules\" "' + $InstallDir$ + 'mod1.bin"'
; ...es bleibt nur "c:\App Dir\modules\" (ohne Anführungszeichen) übrig; der zweite Pfad entfällt
comment "Parameters: ["+ $AppParameters$ +"]"
LinkFolder_CreateDesktopLink
;=====================================================================
[LinkFolder_CreateDesktopLink]
;=====================================================================
set_basefolder desktopdirectory
set_subfolder ""
set_link
name: $AppName$
target: $AppTarget$
parameters: $AppParameters$
working_dir: %UserProfileDir%\Documents
icon_file:
icon_index:
end_link
Beginnt der String jedoch mit einem anderen Zeichen (ausser Space; im obigen Beispiel '-v' oder 'dir='), ist der erzeugte Link korrekt.
Version opsi-script: 4.12.0.21
Viele Grüsse,
Jens