Ordner kann nicht gelöscht werden

Post Reply
Stephan Vollweiler
Posts: 18
Joined: 14. Mar 2017, 07:34

Ordner kann nicht gelöscht werden

Post by Stephan Vollweiler » 14. Sep 2017, 12:05

Hi zusammen,

wir versuchen gerade bei der Deinstallation eines Pakets auch einen Ordner zu löschen. Das klappt leider nicht.
So sieht der Abschnitt in unserer Setup.inf aus:

Code: Select all

[Product]
#Set:Uninstall, DELETE

[Set:Uninstall]
-RmDir C:\Verzeichnis1
-DelTree C:\Verzeichnis1\Verzeichnis2\
In unserem Test ist nach dem DeltTree das Verzeichnis1 leer. Aber RmDir kann das Verzeichnis dann nicht löschen. Es bleibt bestehen.
Wenn testweise nach dem DelTree noch eine CMD gestartet wird und über diese dann versucht wird das Verzeichnis zu löschen, kommt die Meldung, dass das Verzeichnis in Benutzung ist.
Woran könnte das liegen? Oder wie können wir komplett das Verzeichnis1 löschen?

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7966
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Ordner kann nicht gelöscht werden

Post by Hendrik_Ambrosius » 14. Sep 2017, 12:36

Versuchen Sie mal folgendes:

[SET:Uninstall]
1:, c:\Verzeichnis1, CREATE DIRECTORY CASCADED, 0

Ansonsten greift noch ein Prozess auf Dateien im Verzeichnis zu.
Mal über Taskmgr gucken was es sein kann und dann diese Tasks per Kommando vorher killen.
Manchmal hilft auch einfach ein sleep für ein paar Sekunden Pause.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

Stephan Vollweiler
Posts: 18
Joined: 14. Mar 2017, 07:34

Re: Ordner kann nicht gelöscht werden

Post by Stephan Vollweiler » 14. Sep 2017, 15:10

Danke für den Tipp.
Leider hat es nicht funktioniert. Es scheint so, als wären die Empirum Prozesse schuld.
Das Problem besteht, wenn wie in unserem Beispiel, der Befehl DelTree das Verzeichnis2 im Verzeichnis1 löscht und anschließend Verzeichnis1 gelöscht werden soll. Während der gesamten Dauer des Paketdurchlaufs ist das Verzeichnis1 dann in Benutzung.
Ist das Verzeichnis 1 von Anfang an leer oder wird der DelTree Befehl weggelassen, wird der Löschvorgang ohne Probleme durchgeführt.
Kennt jemand die Ursache oder ein Work-A-Round für dieses Phänomen?

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7966
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Ordner kann nicht gelöscht werden

Post by Hendrik_Ambrosius » 14. Sep 2017, 15:20

Und wieso lassen Sie Deltree dann nicht einfach weg wenn dann alles korrekt gelöscht wird?
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

Stephan Vollweiler
Posts: 18
Joined: 14. Mar 2017, 07:34

Re: Ordner kann nicht gelöscht werden

Post by Stephan Vollweiler » 14. Sep 2017, 15:41

Entschuldigen Sie wenn ich mich Missverständlich ausgedrückt habe.
Die Basissoftware legt unter C:\ das Verzeichnis1 an. Nachträglich können weitere Module installiert werden, die jeweils einen Unterordner im Verzeichnis1 anlegen.
-Verzeichnis1=Basissoftware
------- Verzeichnis2=Modul1
------- Verzeichnis3=Modul2
Wir müssen das Verzeichnis1 löschen, sobald das letzte Modul deinstalliert wird. Anderenfalls treten Fehler auf.
Leider kann man vorab nicht sagen, wie viele Module es geben wird, weshalb eine simple IF-Abfrage auf die anderen Modul-Verzeichnisse nicht funktioniert.

User avatar
Hendrik_Ambrosius
Moderator
Moderator
Posts: 7966
Joined: 13. Dec 2004, 23:10
Location: Adendorf/Lüneburg

Re: Ordner kann nicht gelöscht werden

Post by Hendrik_Ambrosius » 14. Sep 2017, 15:52

OK. Dann noch ein ganz dreckiger Trick als letzte Option wenn es wirklich das Empirum selbst ist was das blockiert (kann ich nicht nachvollziehen):

Sie erstellen eine Batchdatei die z.B. enthält:
REM Etwas warten
call ping -n 10 localhost> nul
REM Löschen
RD c:\Verzeichnis1

Dies dann im Rahmen der setup.inf nach %TEMP% oder so kopieren und OHNE call am Ende des Scripts aufrufen.
Sollte dann über "-%temp%\mybatch.cmd" starten.
Denke jedenfalls, dass hier auch ein - bei Deinstallation vorangestellt werden muss > testen!
Dann wird die Datei ausgeführt ohne das Ende der setup.inf abzuwarten und das RD kommt erst wenn die setup.exe schon beendet ist.
Hendrik Ambrosius / Senior Presales Consultant
Mobile: +49 172 408 4447 | hendrik.ambrosius@matrix42.com
Matrix42 GmbH | Elbinger Straße 7 | 60487 Frankfurt am Main | Germany | www.matrix42.com

Disclaimer: I participate in this forum on a voluntary basis. Views expressed are not necessarily those of Matrix42 or of the support team.

Stephan Vollweiler
Posts: 18
Joined: 14. Mar 2017, 07:34

Re: Ordner kann nicht gelöscht werden

Post by Stephan Vollweiler » 14. Sep 2017, 17:35

Ich habe noch eine andere Lösung gefunden.

Code: Select all

[Set:Uninstall]
-DelTree C:\Verzeichnis1\Verzeichnis2
-ChDir C:\Temp
;Der ChDir Befehlt wechselt in ein Verzeichnis. C:\ hat nicht funktioniert, weshalb ich C:\Temp gewählt haben. 
-RmDir C:\Verzeichnis1
https://helpfiles.matrix42-web.de/2015_ ... ht=deltree

Bei unseren Tests hat es anschließend immer funtioniert.

Vielen Dank für die Unterstützung.

Meikel Hartmann
Posts: 2
Joined: 14. Sep 2017, 14:41
Contact:

Re: Ordner kann nicht gelöscht werden

Post by Meikel Hartmann » 15. Sep 2017, 09:29

Vielen Dank für den Tipp Herr Vollweiler.

Bei uns hat es genau so funktioniert. :)

Post Reply

Return to “Paketierung”

Who is online

Users browsing this forum: No registered users and 16 guests