winst: leere Ordner löschen
-
- Beiträge: 16
- Registriert: 11 Jun 2010, 15:45
winst: leere Ordner löschen
Hi,
wir haben bei unseren Paketen häufiger die Situation, dass sich mehrere Pakete einen Ordner in C:\Programme oder im Startmenü teilen. Wenn eines der Pakete deinstalliert wird, soll natürlich nicht der ganze Ordner gelöscht werden, der noch Dateien von den anderen Paketen enthält; wenn aber das letzte der Pakete deinstalliert wird, soll kein leerer Ordner übrig bleiben. Geht das irgendwie mit winst, oder muss ich mir einen Workaround mit DosBatch und rmdir bauen?
wir haben bei unseren Paketen häufiger die Situation, dass sich mehrere Pakete einen Ordner in C:\Programme oder im Startmenü teilen. Wenn eines der Pakete deinstalliert wird, soll natürlich nicht der ganze Ordner gelöscht werden, der noch Dateien von den anderen Paketen enthält; wenn aber das letzte der Pakete deinstalliert wird, soll kein leerer Ordner übrig bleiben. Geht das irgendwie mit winst, oder muss ich mir einen Workaround mit DosBatch und rmdir bauen?
Mit freundlichen Grüßen,
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu
Re: winst: leere Ordner löschen
Hi,
der opsi-winst hat zur Zeit keinen Befehl mit dem man nur leere Verzeichnisse löscht
Ich nehme es mal als Feature Request auf ....
gruss
d.oertel
der opsi-winst hat zur Zeit keinen Befehl mit dem man nur leere Verzeichnisse löscht
Ich nehme es mal als Feature Request auf ....
gruss
d.oertel
Vielen Dank für die Nutzung von opsi. Im Forum ist unser Support begrenzt.
Für den professionellen Einsatz und individuelle Beratung empfehlen wir einen Support-Vertrag und eine Schulung.
Gerne informieren wir Sie zu unserem Angebot.
uib GmbH
Telefon: +49 6131 27561 0
E-Mail: sales@uib.de
-
- Beiträge: 16
- Registriert: 11 Jun 2010, 15:45
Re: winst: leere Ordner löschen
Hab ein Workaround gefunden:
Delete "%CommonStartMenuPath%\Programme\Cornelsen" in einer Files-Section tut es leider nicht - es bricht zwar ab, wenn es Unterordner in dem zu löschenden Ordner findet, aber wenn der Ordner nur Dateien enthält, würde es die Dateien und den Ordner trotzdem löschen. DosBatch/DosInAnIcon tut es ebenfalls nicht, weil "Startmenü" einen Umlaut enthält, aber opsi die resultierende Batchdatei nicht mit dem CP850-Encoding speichert, das cmd erwartet - mit dem falschen Encoding findet rmdir den Ordner dann nicht. Praktischerweise konvertiert cmd den String, wenn ich ihn per /c übergebe, daher der WinBatch-cmd/c-Hack.
Code: Alles auswählen
[WinBatch_RemoveEmptyFolder]
cmd /c rmdir "%CommonStartMenuPath%\Programme\Cornelsen"
Mit freundlichen Grüßen,
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu
-
- Beiträge: 16
- Registriert: 11 Jun 2010, 15:45
Re: winst: leere Ordner löschen
Noch besser - damit sieht man kein cmd-Fenster aufblitzen, und "Programme" ist nicht mehr hardgecodet (da wir leider noch auf opsi 3.4-Stand sind, haben wir die %CommonProgramsDir%-Variable noch nicht, von der ich annehme, das sie den Pfad enthalten würde):
Das //E:VBS ist wichtig, weil cscript sonst versuchen würde, den Scripttyp an der Erweiterung zu erkennen - die ist aber bei ExecWith immer ".bat", was cscript natürlich nicht versteht.
Code: Alles auswählen
ExecWith_RemoveEmptyFolder "cscript" "//E:VBS"
[ExecWith_RemoveEmptyFolder]
Set shell = CreateObject("WScript.Shell")
Set fso = CreateObject("Scripting.FileSystemObject")
path = shell.SpecialFolders("AllUsersPrograms") & "\Cornelsen"
If fso.FolderExists(path) Then
Set d = fso.GetFolder(path)
If d.Files.Count = 0 And d.SubFolders.Count = 0 Then
fso.DeleteFolder(path)
End If
End If
Mit freundlichen Grüßen,
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu
Re: winst: leere Ordner löschen
Hallo,
Falls Umlaute stören kann man auch einfach das ganze so machen:
MfG bell
Falls Umlaute stören kann man auch einfach das ganze so machen:
Code: Alles auswählen
[DosInAnIcon_rmdir]
rmdir c:\DOKUME~1\Administrator\STARTM~1\Folder
-
- Beiträge: 16
- Registriert: 11 Jun 2010, 15:45
Re: winst: leere Ordner löschen
Das hardcodet die Pfade aber wieder, sodass es nicht auf einem englischen System funktionieren würde 

Mit freundlichen Grüßen,
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu
Martin v. Wittich
IServ GmbH
Bültenweg 73
38106 Braunschweig
Telefon: 0531-2243666-0
Fax: 0531-2243666-9
E-Mail: info@iserv.eu
Internet: iserv.eu