2 Replies Latest reply on Jul 1, 2014 3:23 AM by derniwi

    Paket kann Variablen nicht auflösen

    erzwodezwo Expert
      Hallo,

      ich habe bei einem Paket ein seltsames Verhalten... eventuell sehe ich aber auch nur den Wald vor lauter Bäumen nicht....

      Ich habe ein Paket erstellt dass einen Windows Task mit Hilfe von SchTasks.exe anlegt.
      Im Zuge dessen werden auch zwei Dateien kopiert was ich wie folgt mache:

      If not Exist('%InstallOrdner%\7za.exe')
      Copy('.\Extern$\7za.exe','%InstallOrdner%')/U/TS


      An dieser Stelle kann er %InstallOrdner% nicht auflösen obwohl sie weiter oben im Script definiert wurde:

      If Exist('%ProgramFilesDir%\Silhouette Studio\Silhouette Studio.exe')
      Set('InstallOrdner','%ProgramFilesDir%\Silhouette Studio')
      If Exist('%ProgramFilesDir%\Silhouette America\Silhouette Studio\Silhouette Studio.exe')
      Set('InstallOrdner','%ProgramFilesDir%\Silhouette America\Silhouette Studio')


      Der Script Teil wird auch abgearbeitet:

      Evaluating condition "Exist('_ProgramFilesDir_\Silhouette Studio\Silhouette Studio.exe')"
      09:37:37.582 1          RegValue 'ProgramFilesDir' resolved as 'C:\Program Files (x86)'
      09:37:37.583 2        Condition FALSE  -> skipping IF part
      09:37:37.583 2        Skipping command : Set

      09:37:37.583 1        Evaluating condition "Exist('_ProgramFilesDir_\Silhouette America\Silhouette Studio\Silhouette Studio.exe')"
      09:37:37.583 1          RegValue 'ProgramFilesDir' resolved as 'C:\Program Files (x86)'
      09:37:37.584 2        Condition TRUE  -> entering IF part
      09:37:37.584 1         RegValue 'ProgramFilesDir' resolved as 'C:\Program Files (x86)'


      Geht es dann aber ans kopieren findet er nichts, die Datei ist in diesem Fall bereits vorhanden und er düfte sie nicht nochmal kopieren:

      Evaluating condition "not Exist('_InstallOrdner_\7za.exe')"
      09:37:37.830 2        Condition TRUE  -> entering IF part


      Kann mir jemand erklären warum Netinstall auf einmal die Variablen nicht mehr auflösen kann, andere Pakete haben keine Probleme?

      Gruß
      Torsten
        • 1. Re: Paket kann Variablen nicht auflösen
          NicoS1 Master
          Hallo Torsten,

          ist es sicher, dass das Auflösen der Variable das Problem ist?
          z.B. mache nach deinem IF mal eine ELSE und eine MessageBox in der du %InstallOrdner% ausgibst. Dein Logfile impliziert erstmal nicht, er die Variable nicht auflösen kann, sondern nur das er die Datei nicht findet.

          Ich bin gerade am überlegen... ich hatte definitiv auch mal einen Fall, in dem DSM eine Datei mit if exist nicht gefunden hatte. Copy etc. funktioniert aber trotzdem. Ich GLAUBE es lag da dran dass die Datei ein hidden und/oder system Attribut hatte.

          Gruß
          • 2. Re: Paket kann Variablen nicht auflösen
            derniwi Master
            Hallo,


            Evaluating condition "Exist('_ProgramFilesDir_\Silhouette Studio\Silhouette Studio.exe')"
            09:37:37.582 1          RegValue 'ProgramFilesDir' resolved as 'C:\Program Files (x86)'
            09:37:37.583 2        Condition FALSE  -> skipping IF part
            09:37:37.583 2        Skipping command : Set


            Also, hier fehlt entweder der wichtige Teil des Logs oder die Variable wird nicht gesetzt... in dem Auszug steht nur, dass der relevante Set-Befehl übersprungen wird.

            Ich würde auf jenden Fall die Variable zuerst leer setzen und noch eine Abfrage einbauen, ob die Variable nicht leer ist.

            Gruß
            Nils