Seite 1 von 1
Jokerzeichen in Pfadangabe?
Verfasst: 20 Aug 2009, 11:14
von Genius
Hallo,
gibt es eigentlich ein Jokerzeichen für Pfadangaben?
Oder kennt jemand alternativen, um in Verzeichnisse mit unterschiedlichen Versionsnummern reinzukommen?
Konkret geht es um folgendes: C:\Programme\gs\gs8.70\
Ich weiß leider nicht, wieviele unterschiedliche Versionen bei uns installiert sind, weshalb ich versuche, alles mit einem Jokerzeichen unter den Hut zu bringen.
C:\Programme\gs\gs*\ geht leider nicht.
Würde mich über Antworten frauen.
Viele Grüße
Patrick
Re: Jokerzeichen in Pfadangabe?
Verfasst: 23 Aug 2009, 17:03
von d.oertel
Hi,
da kommt es ein wenig auf den Kontext an.
In Files-Sektionen gibt es Jokerzeichen bei der Angabe der Quelle (siehe Winst-Handbuch),
ansonsten nicht.
Man könnte per DosInAnIcon abfragen was da ist und das Ergebnis in eine Stringliste leiten die man dann untersucht.....
gruss
d.oertel
Re: Jokerzeichen in Pfadangabe?
Verfasst: 24 Aug 2009, 14:44
von heuft_kdi
Da ich auch schon vor dem Fall stand, das ich nicht wuste, welche GS Version den nun im Einsatz ist, habe ich mir einfach folgendes gebastelt:
Code: Alles auswählen
[Aktionen]
DefVar $OS$
DefVar $NTVer$
DefVar $GS_Version$
DefVar $GS_Akt_Version$
DefVar $GS_Akt_Installed$
DefStringList $GS_Version_List$
set $OS$ = GetOS
set $NTVer$ = GetNTVersion
set $GS_Akt_Version$="8.62"
set $GS_Akt_Installed$="0"
set $GS_Version_List$ = createStringList('8.50','8.54','8.56','8.57','8.60','8.61','8.62')
requiredWinstVersion >= "4.6"
; is this a win32 system ?
if ( $OS$ = "Windows_NT" ) and ( $NTVer$ = "WinXP" )
for $v$ in $GS_Version_List$ do sub_check_gs_version
if not ($GS_Akt_Installed$ = "1")
Message=Installiere Ghostscript 8.62
Files_copy_ghostscript
Registry_install_ghostscript
Message=
endif
endif
[sub_check_gs_version]
set $GS_Version$ = "$v$"
winbatch_check_gs_version
if (GetLastExitCode = "1")
if not ($GS_Akt_Version$ = $GS_Version$)
if (FileExists ("%ProgramFilesDir%\gs\gs" + $GS_Version$))
Message=Entferne Ghostscript $GS_Version$
Files_remove_gs
DosInAnIcon_remove_gs
Message=
endif
if (FileExists ("%ProgramFilesDir%\gs\fonts"))
Message=Entferne Ghostscript Fonts
Files_remove_gsfonts
DosInAnIcon_remove_gsfonts
Message=
endif
else
set $GS_Akt_Installed$="1"
endif
endif
[Registry_install_ghostscript]
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\GPL Ghostscript\8.62]
set "GS_DLL" = "%ProgramFilesDir%\gs\gs8.62\bin\gsdll32.dll"
set "GS_LIB" = "%ProgramFilesDir%\gs\gs8.62\lib;%ProgramFilesDir%\gs\fonts;%ProgramFilesDir%\gs\gs8.62\Resource;%Systemroot%\fonts"
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\GPL Ghostscript 8.62]
set "DisplayName" = "GPL Ghostscript 8.62"
set "UninstallString" = '%ProgramFilesDir%\gs\uninstgs.exe "%ProgramFilesDir%\gs\gs8.62\uninstal.txt"'
OpenKey [HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\GPL Ghostscript Fonts]
set "DisplayName" = "GPL Ghostscript Fonts"
set "UninstallString" = '%ProgramFilesDir%\gs\uninstgs.exe "%ProgramFilesDir%\gs\fonts\uninstal.txt"'
[winbatch_check_gs_version]
%SCRIPTPATH%\files\FreePDFXP\fpsetup.exe /IsGhostScriptInstalled $GS_Version$
[Files_copy_ghostscript]
copy -se "%SCRIPTPATH%\files\gs\*.*" "%ProgramFilesDir%\gs"
[Files_remove_gs]
delete -sf "%ProgramFilesDir%\gs\gs$GS_Version$"
[Files_remove_gsfonts]
delete -sf "%ProgramFilesDir%\gs\fonts"
Im großen und ganzen prüfe ich nur auf die bekannten Versionen die es von Ghostscript gab. Beim Tool FreePDF (Aus dem Installationsskript für dieses Tool stammt auch dieser Ausschnitt) ist nun ein Tool dabei, was prüfen kann ob die entsprechende Ghostscript Version vorhanden ist.
Mann könnte natürlich auch auf das Vorhanden sein einer bestimmten Datei (uninstall.txt oder bin\gswin32.exe) prüfen. Ich hoffe, der Ansatz hilft.