Seite 1 von 1
nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 10:14
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
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 11:03
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
?
Gruß
Dirk
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 11:52
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 ??
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 12:03
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
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 13:34
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
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 13:45
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
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 14:16
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
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 14:31
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 !?!
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 14:38
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
Re: nichtvorhandene Dateien Überprüfen
Verfasst: 06 Nov 2008, 14:47
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