"if FileExists" verwendet opsi-Pfad

Antworten
Nils
Beiträge: 185
Registriert: 16 Sep 2011, 08:59

"if FileExists" verwendet opsi-Pfad

Beitrag von Nils »

Hallo und guten Morgen,

ich habe folgendes Problem mit "if FileExists":
Nutze ich "FileExists" mit Angabe eines Pfades (z. B. if (FileExists("C:\ProgramFiles\...\...exe")), so funktioniert alles, wie es soll.
Verwende ich jedoch eine Variable ("if FileExists($PfadZurDatei$)"), so wird lt. Log folgendes geprüft:
Starting query if file exist ...
"C:\Program Files (x86)\opsi.org\opsi-client-agent\opsi-winst\$PfadZurDatei$":
Somit wird vor die Variable immer der Pfad zum winst eingetragen. Dies führt natürlich dazu, dass "if FileExists" nicht "true" wird.

Was muss ich ändern, um mit FileExists auf die, in einer Variablen gespeicherte Datei prüfen zu können?

Vielen Dank im Voraus für eure Unterstützung.
Viele Grüße
Nils
larsg
Beiträge: 283
Registriert: 16 Dez 2014, 18:06

Re: "if FileExists" verwendet opsi-Pfad

Beitrag von larsg »

Poste mal ein konkretes Beispiel von deinen Skripts.

So funktioniert es auf jeden Fall bei mir:

Code: Alles auswählen

DefVar $File$
Set $File$ = "C:\test.txt"
If (FileExists($File$))
Comment "Win"
Else
Comment "Fail"
EndIf
Nils
Beiträge: 185
Registriert: 16 Sep 2011, 08:59

Re: "if FileExists" verwendet opsi-Pfad

Beitrag von Nils »

Hallo Lars,

vielen Dank für deine Antwort.
Inzwischen habe ich mein Skript umgebaut. Nun hole ich mir den Pfad zu der Datei aus einem Registrystring. Dann prüfe ich mit einer "normalen" if-Bedingung, ob der zurückgegebene String gleich "" ist. Wenn nicht, lasse ich das Skript Aktion A oder, falls doch, Aktion B ausführen.
Somit benötige ich das "if FileExists" in diesem Fall gar nicht mehr. :oops:
Trotzdem vielen Dank für deine Unterstützung.

Viele Grüße und einen schönen, erfolgreichen Tag.
Nils
Benutzeravatar
SisterOfMercy
Beiträge: 1522
Registriert: 22 Jun 2012, 19:18

Re: "if FileExists" verwendet opsi-Pfad

Beitrag von SisterOfMercy »

Nils hat geschrieben:ich habe folgendes Problem mit "if FileExists":
Nutze ich "FileExists" mit Angabe eines Pfades (z. B. if (FileExists("C:\ProgramFiles\...\...exe")), so funktioniert alles, wie es soll.
Verwende ich jedoch eine Variable ("if FileExists($PfadZurDatei$)"), so wird lt. Log folgendes geprüft:
viewtopic.php?f=6&t=8068

I think this might be related, I had the same thing.
Bitte schreiben Sie Deutsch, when I'm responding in the German-speaking part of the forum!
Antworten