nichtvorhandene Dateien Überprüfen

Antworten
mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

nichtvorhandene Dateien Überprüfen

Beitrag von mro-rednet »

Hallo,

im Zuge meiner Skriptanpassung für die (De-) Installation diverser Produkte suche ich nach einer Lösung wie ich überprüfen kann ob Dateien nicht vorhanden sind !?!

Was ich vorhabe:

Ich möchte vor einer deinstallation eines Produktes überprüfen ob es auch wirklich NICHT vorhanden ist, da es ansonsten zu Fehlern kommen könnte.

Ob etwas vorhanden ist überprüfe ich mit IfFileExists, aber wie geht es andersrum ?!

Vielen Dank
Benutzeravatar
Neptunium
Beiträge: 224
Registriert: 03 Jul 2008, 12:08
Wohnort: Marburg - Germany

Re: nichtvorhandene Dateien Überprüfen

Beitrag von Neptunium »

mro-ncd hat geschrieben:Ich möchte vor einer deinstallation eines Produktes überprüfen ob es auch wirklich NICHT vorhanden ist, da es ansonsten zu Fehlern kommen könnte.
Ob etwas vorhanden ist überprüfe ich mit IfFileExists, aber wie geht es andersrum ?!
WIe wäre es schlicht mit

Code: Alles auswählen

if not (FileExists ("/a/b/c"))
?

Gruß

Dirk
mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

Re: nichtvorhandene Dateien Überprüfen

Beitrag von mro-rednet »

Danke das klappt, so einfach kann es sein!!!

und wie sieht es aus , wenn überprüft werden soll, ob mehrere dateien da sind ???

Code: Alles auswählen

if FileExists("c:\Programme\citrix\ICA-Client\pdc40n.dll", "c:\Programme\citrix\ICA-Client\xyz.dll")


so ??
Benutzeravatar
Neptunium
Beiträge: 224
Registriert: 03 Jul 2008, 12:08
Wohnort: Marburg - Germany

Re: nichtvorhandene Dateien Überprüfen

Beitrag von Neptunium »

mro-ncd hat geschrieben:und wie sieht es aus , wenn überprüft werden soll, ob mehrere dateien da sind ???

Code: Alles auswählen

if FileExists("c:\Programme\citrix\ICA-Client\pdc40n.dll", "c:\Programme\citrix\ICA-Client\xyz.dll")
Ein wenig Handbuch (bzw. Reference Card http://download.uib.de/opsi3.3/doku/ops ... e-card.pdf, siehe Abschnitt 5.3) lesen hilft da ungemein! ;-)

Code: Alles auswählen

if (FileExists("c:\Programme\citrix\ICA-Client\pdc40n.dll")) AND (FileExists("c:\Programme\citrix\ICA-Client\xyz.dll"))
Gruß

Dirk
rfrankow
Beiträge: 146
Registriert: 03 Jul 2008, 15:06

Re: nichtvorhandene Dateien Überprüfen

Beitrag von rfrankow »

ich find es besser eine installierte software anhand des uninstall eintrags der registry zu deinstallieren wie z.b. bei openoffice

Code: Alles auswählen

  ;alte version 2.1.0 zum löschen
  set $MsiCode$="{8FB1A5EA-7DA8-4D57-80FB-BD923CCCC852}" 
  set $DisplayName$ = GetRegistryStringValue ("[HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Uninstall\"+$MsiCode$+"] DisplayName")
  if not ($DisplayName$ = "")
     Message "Found "+$DisplayName$+" => uninstalling first"
     set $UninstallCommand$ = "MsiExec.exe /x "+$MsiCode$+" /qb-! REBOOT=ReallySuppress"
     Winbatch_uninstall
  endif
Benutzeravatar
Neptunium
Beiträge: 224
Registriert: 03 Jul 2008, 12:08
Wohnort: Marburg - Germany

Re: nichtvorhandene Dateien Überprüfen

Beitrag von Neptunium »

rfrankow hat geschrieben:ich find es besser eine installierte software anhand des uninstall eintrags der registry zu deinstallieren wie z.b. bei openoffice
Es ging hier doch gar nicht ums Deinstallieren, sondern um die Syntax von Bedingungen?

Gruß

Dirk
mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

Re: nichtvorhandene Dateien Überprüfen

Beitrag von mro-rednet »

Also, ich habe hier nochmal folgendes Skript erstellt:

Code: Alles auswählen

if not (FileExists ("c:\Programme\Microsoft Office\Office10\EXCEL.EXE")AND("c:\Programme\Microsoft Office\Office10\OUTLOOK.EXE"))
    ExitWindows /ImmediateLogout
else
	WinBatch_uninstall_officexp    
endif

[WinBatch_uninstall_officexp]
%SCRIPTPATH%\officexpuninstall.exe
Nun erscheint aber die Meldung:

Sektion Initial (Kommando in Zeilte 13):
not(FileExists("c:\Programme\Microsoft Office\Office10\EXCEL.exe")AND(""c:\Programme\Microsoft Office\Office10\OUTLOOK.exe"))
relation Symbol ("<",">","="...)expected


und

Sektion Initial (Kommando in Zeilte 13):
))
fehlerhafte Zeichen



Hier noch eben die LOG:

Code: Alles auswählen

LogLevel set to 2

Set  $OS$ = GetOS
  The value of the variable is now: "Windows_NT"

Set  $MinorOS$ = GetNTVersion
  The value of the variable is now: "WinXP"

If
    Starting query if file exist ...
    "c:\Programme\Microsoft Office\Office10\EXCEL.EXE": File Error 2 (Das System kann die angegebene Datei nicht finden)
  "c:\Programme\Microsoft Office\Office10\OUTLOOK.EXE"    <<< syntax error, no result!! - set to false
  ("c:\Programme\Microsoft Office\Office10\OUTLOOK.EXE"    <<< syntax error, no result!! - set to false
  FileExists ("c:\Programme\Microsoft Office\Office10\EXCEL.EXE")AND("c:\Programme\Microsoft Office\Office10\OUTLOOK.EXE"    <<< syntax error, 
no result!! - set to false
  not (FileExists ("c:\Programme\Microsoft Office\Office10\EXCEL.EXE")AND("c:\Programme\Microsoft Office\Office10\OUTLOOK.EXE"    <<< syntax 
error, no result!! - set to false
Then

Else
EndIf

___________________
0 errors
0 warnings
rfrankow
Beiträge: 146
Registriert: 03 Jul 2008, 15:06

Re: nichtvorhandene Dateien Überprüfen

Beitrag von rfrankow »

Neptunium hat geschrieben:Es ging hier doch gar nicht ums Deinstallieren, sondern um die Syntax von Bedingungen?

Code: Alles auswählen

im Zuge meiner Skriptanpassung für die (De-) Installation diverser Produkte suche ich nach einer Lösung wie ich überprüfen kann ob Dateien nicht vorhanden sind !?!
mro-rednet
Beiträge: 73
Registriert: 01 Jul 2008, 13:12
Wohnort: Mainz

Re: nichtvorhandene Dateien Überprüfen

Beitrag von mro-rednet »

Neptunium hat schon recht, es geht mir um die bedingungen, wie ich etwas (de-) installiere bekomme ich schon hin, aber da die bedingungen und die skripte schnell komplex werden, habe ich da noch so meine Probleme.

Danke dir trotzdem
Benutzeravatar
Neptunium
Beiträge: 224
Registriert: 03 Jul 2008, 12:08
Wohnort: Marburg - Germany

Re: nichtvorhandene Dateien Überprüfen

Beitrag von Neptunium »

mro-ncd hat geschrieben:Also, ich habe hier nochmal folgendes Skript erstellt:

Code: Alles auswählen

if not (FileExists ("c:\Programme\Microsoft Office\Office10\EXCEL.EXE")AND("c:\Programme\Microsoft Office\Office10\OUTLOOK.EXE"))
Mein Beispiel war etwas zu schnell getippt. Aber man hätte das auch im Kapitel 6,7.3 vom Winst-Handbuch selber nachlesen können: Nur bei der Verwendung der Negation muß eine zusätzliche Klammer um diese Bedingung, ansonsten werden Bedingungen einfach durch AND oder OR erweitert. Allerdings muß auch jedesmal die Bedingung, auf die geprüft werden soll, explizit angegeben werden. Außerdem hast du vermutlich um AND keine Leerzeichen.
Korrekt sollte also sein:

Code: Alles auswählen

if not (FileExists ("c:\Programme\Microsoft Office\Office10\EXCEL.EXE")) AND FileExists ("c:\Programme\Microsoft Office\Office10\OUTLOOK.EXE")
Ich hoffe, daß das jetzt wirklich stimmt, aber falls nicht: Ein wenig Handbuchstudium und Trial and Error schadet nicht sondern bildet meistens. ;-)

Gruß

Dirk
Antworten