Seite 1 von 1

FileExists -> File Error 123

Verfasst: 26 Okt 2011, 08:43
von thomas.besser
Hallo,

ich hole mir den Pfad zu einer Uninstall-Exe aus der Registry (WinXP 32bit)

Code: Alles auswählen

[...]
Set $UninstallProgram$ = GetRegistryStringValue32("[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\" + $RegDirId$ + "] UninstallString")

if FileExists($UninstallProgram$)
[...]
Die Überprüfung ob die Datei existiert, wird mit folgender Fehlermeldung quittiert:

Code: Alles auswählen

[1] [25.10.2011 15:05:07] opsi-winst 4.11.1.6 started at 25.10.2011 15:05:05
[...]
[6] [25.10.2011 15:05:08]       The value of the variable "$UninstallProgram$" is now: ""C:\Programme\R\R-2.13.2\unins000.exe""
[5] [25.10.2011 15:05:08]     
[5] [25.10.2011 15:05:08]     If
[6] [25.10.2011 15:05:08]         Starting query if file exist ...
[5] [25.10.2011 15:05:08]         ""C:\Programme\R\R-2.13.2\unins000.exe"": File Error 123 (Die Syntax für den Dateinamen, Verzeichnisnamen oder die Datenträgerbezeichnung ist falsch.
)
Die Datei existiert und kann manuell ausgeführt werden. Das einzigste auffällige wäre evtl. das "-" bzw. "." im Pfadnamen, aber das sollte doch kein Problem darstellen!?

Evtl. ein Bug?

Danke und Gruß
Thomas Besser

Re: FileExists -> File Error 123

Verfasst: 26 Okt 2011, 09:05
von Shakreo
Hallo,

ich glaube eher, dass das Problem in den doppelten Anführungszeichen steckt. Kann es sein dass in dem Registrywert vielleicht auch Anführungszeichen enthalten sind, die er mit ausliest? Wenn ja versuch diese mal rauszunehmen.

Re: FileExists -> File Error 123

Verfasst: 26 Okt 2011, 09:08
von lars_k
Hallo ,

kann ich nur bestätigen.
nimm mal: if ( FileExists($UninstallProgram$) )

gruß

Lars

Re: FileExists -> File Error 123

Verfasst: 26 Okt 2011, 16:34
von thomas.besser
@lars_k: das mit der zusätzlichen Klammer hat nichts gebracht.

@Shakreo: du hast Recht, es waren Anführungszeichen in dem Wert mit drin. Nehme ich die manuell raus, funktioniert es.

Thanx!

Re: FileExists -> File Error 123

Verfasst: 27 Okt 2011, 14:33
von thomas.besser
vielleicht hilft es jemandem mal noch, ich eliminiere die Anführungszeichen im String mit:

Set $UninstallProgram$ = takeString (1, splitString ( $UninstallProgram$ , '"'))

Jetzt tut es wie es soll.