Delphi-PRAXiS
Seite 2 von 4     12 34      

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Object-Pascal / Delphi-Language (https://www.delphipraxis.net/32-object-pascal-delphi-language/)
-   -   Delphi Anwendungsordner löschen (https://www.delphipraxis.net/86774-anwendungsordner-loeschen.html)

xZise 19. Feb 2007 16:27

Re: Anwendungsordner löschen
 
Also ich habe da so meine Probleme :P
Das ist meine ".bat"
Zitat:

del "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)\Project1.exe"
del "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)\UNINSTALL.bat"
rd "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)"
wenn ich die jetzt ausführe (Doppelklick im Explorer oder über die cmd), dann sagt er:
Zitat:

C:\Dokumente und Einstellungen\xZise\Desktop>"C:\Dokumente und Einstellungen\xZi
se\Desktop\Neuer Ordner (2)\UNINSTALL.bat"

C:\Dokumente und Einstellungen\xZise\Desktop>del "C:\Dokumente und Einstellungen
\xZise\Desktop\Neuer Ordner (2)\Project1.exe"

C:\Dokumente und Einstellungen\xZise\Desktop>del "C:\Dokumente und Einstellungen
\xZise\Desktop\Neuer Ordner (2)\UNINSTALL.bat"
Die Batchdatei kann nicht gefunden werden.
Das schon irgendwie seltsam ist :?

@ DGL: 1. Deltree hab ich net als Befehl
2. k
3. Öhm... ich würde sagen wait oder so, aber ich find da nichts passended

Nils_13 19. Feb 2007 16:33

Re: Anwendungsordner löschen
 
Du musst die Pfade mit ~ aufteilen. Weiß aber auch nicht, wie man das genau macht :?

Jelly 19. Feb 2007 17:53

Re: Anwendungsordner löschen
 
Zitat:

Zitat von Nils_13
Du musst die Pfade mit ~ aufteilen. Weiß aber auch nicht, wie man das genau macht :?

Ist zwar nicht notwendig, aber so gehts:

Delphi-Quellcode:
function GetDOS83(Filename : string) : string;
var
 DirEntry : TSearchRec ;
begin
     result := '' ;
     if FindFirst (FFileName,faAnyFile,DirEntry) = 0
     then begin
               result := DirEntry.FindData.cAlternateFileName ;
               if result = ''
               then result := uppercase(extractfilename (FFilename)) ;
          end
     else Result := '' ;
     FindClose (DirEntry) ;
end;

xZise 19. Feb 2007 19:33

Re: Anwendungsordner löschen
 
Zitat:

Zitat von Jelly
Zitat:

Zitat von Nils_13
Du musst die Pfade mit ~ aufteilen. Weiß aber auch nicht, wie man das genau macht :?

Ist zwar nicht notwendig

Und woran liegt dann...
Also es kann ja nicht angehen :P Irgendwie müssen das ja die uninstaller auch gebacken kriegen ...

Jelly 19. Feb 2007 20:29

Re: Anwendungsordner löschen
 
Zitat:

Zitat von xZise
Und woran liegt dann...
Also es kann ja nicht angehen :P Irgendwie müssen das ja die uninstaller auch gebacken kriegen ...

Also entweder reden wir aneinander vorbei oder ich versteh die Aussage nicht. Ich bezog mich darauf, dass es nicht zwingend notwendig ist, kurze Dateinamen in Batch Files zu verwenden. Solange die langen Pfade in "" angegeben sind, kann der Prompt durchaus damit umgehen. Oder irre ich mich da :gruebel:

xZise 19. Feb 2007 20:51

Re: Anwendungsordner löschen
 
Das isses ja :| Ich weis nicht worans liegt...
Ich habe die "" und die Befehle sind ja an sich auch korrekt :?

himitsu 19. Feb 2007 22:21

Re: Anwendungsordner löschen
 
ich glaub hier wurde was mißverstanden.

die letzte Meldung
Zitat:

Die Batchdatei kann nicht gefunden werden.
gehört nicht zum zuletzt ausgeführten Befehl (DEL self). :warn:

Diese Meldung kommt vom der Console (CMD) und bedeutet nur daß keine weiteren Befehle ausgeführt werden können (welche theoretisch nach dem "DEL self" sein könnten), da die Datei nicht mehr existiert (sie wurde ja gelöscht).


Zu den Dateinamen (lang oder kurz):
im Normalfall reichen die langen Dateinamen, nur das diese dort bei vorhandenen Leerzeichen im Pfad/Dateinamen mit den " zusammengehalten werden müssen.
Das Leerzeichen ist schließlich ein Trennzeichen, womit der Dateiname/Pfad ja sonst in mehrere Parameter aufgesplittet würde.


Die Batchdatei zum Löschen darf natürlich auch nicht in dem zu löschendem Pfad liegen, da dieser nicht gelöscht werden kann, wenn noch was drin ist und vorallem die Batchdatei muß schließlich noch existieren (sie kann sich ja erst selber löschen, wenn auch der pfad weg ist.


Hier mal ein paar Möglichkeiten:
(Codes ohne die grauen Kommentare als C:\Temp\DelApp.bat gespeichert)
Code:
@ECHO OFF

[color=gray]EXE in einer schleife löschen,
da diese nicht gelöscht werden kann, wenn sie noch ausgeführt wird.
dies ist sozusagen das Slepp um auf die Beendigung der EXE zu warten[/color]
:Loop
DEL "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)\app.exe"
IF EXIST "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)\app.exe"  GOTO Loop

[color=gray]weitere Dateien löschen[/color]
DEL "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)\app.ini"

[color=gray]verzeichnis löschen[/color]
RD "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)"

[color=gray]sich selber löschen[/color]
DEL "C:\Temp\DelApp.bat"
Code:
@ECHO OFF

[color=gray]Laufwerk/Verzeichnis wählen[/color]
C:
CD "\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)"

[color=gray]EXE löschen[/color]
:Loop
DEL "app.exe"
IF EXIST "app.exe"  GOTO Loop

[color=gray]weitere Dateien löschen[/color]
DEL "app.ini"

[color=gray]verzeichnis löschen[/color]
CD ..
RD "Neuer Ordner (2)"

[color=gray]sich selber löschen[/color]
DEL "C:\Temp\DelApp.bat"
Code:
@ECHO OFF

[color=gray]EXE löschen[/color]
:Loop
DEL "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)\app.exe"
IF EXIST "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)\app.exe"  GOTO Loop

[color=gray]Verzeichnis samt Dateien löschen[/color]
DEL "C:\Dokumente und Einstellungen\xZise\Desktop\Neuer Ordner (2)"

[color=gray]sich selber löschen[/color]
DEL "C:\Temp\DelApp.bat"

Zitat:

Zitat von DGL-luke
Ähm... "Wie säge ich den Ast ab, auf dem ich sitze?"

Indem man auf 'nen anderen Ast klettert. :angel:
Also die Batchdatei in das temporäre Verzeichnis und alles von dort aus.

[edit]
Befehlsanzeige in den Batch abgeschaltet ... sollte vorallem in der Schleife so besser sein ^^

Nils_13 20. Feb 2007 08:14

Re: Anwendungsordner löschen
 
[OT]
Wieso ist es eigentlich nötig in Anwendungsdaten etwas reinzuschreiben. Mir geht es schon auf die Nerven, wenn ein Ordner in Eigene Dateien angelegt wird. Außerdem ist der Ordner Anwendungsdaten der größte Ordner (abgesehen von Windows selbst), den ich auf C habe und nicht lösche kann. Wenn jetzt alle kleinen Programme auch schon dort reinschreiben, kann ich bald wohl wirklich die Partition vergrößern :roll: Ich kenne keine Sache, die man nicht ins normale Programmverzeichnis schreiben könnte!
[/OT]

Jürgen Thomas 20. Feb 2007 08:29

Re: Anwendungsordner löschen
 
Hallo,

ein Zusatzhinweis für alle Batch-Dateien: Als allererste Zeile sollte eingefügt werden:
Code:
@echo off
Eine Verwirrung, die bei xZise entstanden ist, liegt mit Sicherheit daran, dass jeder Befehl aus der Batch-Datei zunächst angezeigt wurde (und für ihn so aussah, als ob dies bereits zum Arbeitsergebnis gehören würde). Mit @echo off wird dieses Echo ausgeschaltet; der @ sorgt dafür, dass auch dieser Befehl nicht angezeigt wird. Jürgen

Luckie 20. Feb 2007 09:27

Re: Anwendungsordner löschen
 
Zitat:

Zitat von Nils_13
Ich kenne keine Sache, die man nicht ins normale Programmverzeichnis schreiben könnte![/OT]

Doch benutzerspezifische Daten zum Beispiel. Es wird sich immer beschwert, dass Windows Benutzer immer als Administratoren arbeiten, aber wenn jede Anwendung seine Daten im Programmverzeichnis ablegt, ist das auch kein Wunder, denn dort hat man nur als Administrator Schreibrechte. Besonders schön wird es dann, wenn das Programm beim Beenden versucht seine Einstellungen im Anwendungsverzeichnis zu speichern, aber mangels Schreibrechte bei mir (Ich arbeite generell nur als Benutzer mit eingeschränkten Rechten.) zu einer Exception kommt und sich das Programm nicht beendet. Dann hilft nur noch abschiessen mit dem Taskmanager. Solche Programme fliegen bei mir sofort wieder von der Platte und es wird eine nette Mail an den Hersteller geschrieben, dass er der Programmentwicklung unter Windows mindestens 10 Jahre hinterher hinkt. Schon unter Windows NT gab es eine funktionierende Benutzerverwaltung, aber mindestens seit Windows XP, sollten die Hersteller langsam gemerkt haben, wie die Benutzerverwaltung unter Windows funktioniert. Vista macht damit wohl nun endlich Schluss und verbietet es ganz ins Anwendungsverzeichnis zu schreiben.

Siehe dazu auch: http://www.michael-puff.de/Developer.../HOMEDIR.shtml


Alle Zeitangaben in WEZ +1. Es ist jetzt 03:08 Uhr.
Seite 2 von 4     12 34      

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz