DEUTSCHE VERSION |
|
Links | | | Forums | | | Comments | | | Report news |
Chat | | | Polls | | | Newsticker | | | Archive |
amiga-news.de Forum > Amiga, AmigaOS 4 > Amiga DOS - Wie Dateien rekursiv löschen | [ - Search - New posts - Register - Login - ] |
-1- | [ - Post reply - ] |
2013-09-08, 10:42 h Yvan Posts: 334 User |
Ich habe in gewissen Verzeichnissen sehr viele Dateien doppelt. Dabei hat die doppelte Datei den Suffix .BAK. Nun kann ich in ein Verzeichnis gehen und folgendes eingeben delete *.BAK Aber das ganze erstreckt sich über viele Unterverzeichnisse. Es wird ziemlich aufwändig wenn ich in jedes einzelne Verzeichnis wechseln muss. Gibt es einen Befehl, mit dem ich alle Dateien mit Endung *.BAK auch in Unterverzeichnissen löschen kann? [ - Answer - Quote - Direct link - ] |
2013-09-08, 12:10 h DaxB Posts: 1422 User |
Du kannst ALL als Schlüsselwort anhängen.code:Das ist aber mit Vorsicht zu verwenden. Nicht ausversehen alles/falsches löschen. Also das Namensmuster muss stimmen. Mit dem "List" Befehl kann man das vorher testen.delete #?.BAK ALL [ - Answer - Quote - Direct link - ] |
2013-09-08, 12:12 h _PAB_ Posts: 3016 User |
@Yvan: Du kannst das relativ einfach mit einem "Weihnachtsbaum" erreichen: delete *.BAK delete */*.BAK delete */*/*.BAK [...] [ - Answer - Quote - Direct link - ] |
2013-09-08, 12:23 h Yvan Posts: 334 User |
Vielen Dank euch beiden. Ich denke ich kann die erste Variante vorher so testen dir #?.BAK ALL [ Dieser Beitrag wurde von Yvan am 08.09.2013 um 12:24 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2013-09-08, 13:47 h Thore Posts: 2266 User |
Im DOS Handbuch Seite 47, 48 stehts: http://www.pagetable.com/docs/amigados_tripos/amigados_manual.pdf ALL ist der rekursive-Schalter, wie schon erwähnt. Das * Wildcard geht nur wenn du die Erweiterung für das * Wildcard installiert hast, oder eine Bash oder sh nimmst. Ansonsten ist #? das richtige Wildcard. Kannst ja im RAM einen Dummy-Baum aufbauen und das Delete #?.bak ALL mal da ausprobieren bevor Du an die Festplatte gehst Falls Du versehentlich Dateien gelöscht hast und kein Backup hast, empfehle ich DiskSalv zur Wiederherstellung [ - Answer - Quote - Direct link - ] |
2013-09-08, 16:57 h Dave Posts: 63 User |
Das geht mit folgenden Befehlen: list all files p=#?.bak lformat="delete *"%p%n*"" >ram:script execute ram:script Vor dem Execute aber erst mal schauen, was in dem Script steht. Den Tipp bekam ich von Thomas, siehe auch hier: AmigaDos Delete Befehl [ - Answer - Quote - Direct link - ] |
2013-09-10, 12:13 h Tomas Posts: 33 User |
Mach das, was DaxB gesagt hat. Das ist die korrekte Methode. Mit "list #?.bak all" kannst du dir vorher anschauen, was alles gelöscht wird. [ - Answer - Quote - Direct link - ] |
2013-09-10, 15:47 h thomas Posts: 7718 User |
@Tomas: Nein, das funktioniert nicht. #?.bak berücksichtigt alle Einträge im aktuellen Verzeichnis, die auf .bak enden und löscht diese vollständig. Angenommen du hast folgende Struktur: tina/jutta.bak tina/maja.bak otto.bak/egon otto.bak/hugo dann werden egon, hugo und otto.bak gelöscht, aber jutta.bak und maja.bak nicht. Der Vorschlag von Dave ist korrekt und funktioniert. -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ - Answer - Quote - Direct link - ] |
2013-09-11, 13:38 h DaxB Posts: 1422 User |
Kennt jemand ein Beispielalgorithmus wie man unter DOS oder ARexx rekursiv Dateien erreicht. Also wie es das Schlüsselwort ALL macht? [ - Answer - Quote - Direct link - ] |
2013-09-11, 13:41 h Thore Posts: 2266 User |
@DaxB Kommt drauf an was Du machen willst. Willst Du nur eine Liste ausgeben, oder willst Du die einzelnen Dateien öffnen und mit ihnen arbeiten? [ - Answer - Quote - Direct link - ] |
2013-09-11, 13:46 h thomas Posts: 7718 User |
@DaxB: siehe SPat und DPat in S: Oder lies einfach den Thread, Dave hat ja geschrieben, wie es geht. Edit: falls du Programmierung meinst (dos.library), dann schau mal in die Autodocs von MatchNext. Da ist ein komplettes Beispiel. -- Email: thomas-rapp@web.de Home: thomas-rapp.homepage.t-online.de/ [ Dieser Beitrag wurde von thomas am 11.09.2013 um 13:49 Uhr geändert. ] [ - Answer - Quote - Direct link - ] |
2013-09-11, 18:02 h DaxB Posts: 1422 User |
Ist das Beispiel in den ROM_KERNEL_MANUALS? MatchNext() habe ich gefunden, aber nicht das Beispiel. Vor 1-2 Jahren hatte ich versucht ohne rexxarplib.library FILELIST(), oder rexxtricks.library GETDIR() (hat einen kleinen "Fehler") und nur mit ARexx internen Funktionen wie SHOWDIR() rekursiv alle Dateien zu erreichen (auflisten, bearbeiten). Das hat nicht funktioniert (ich meine mehr als 1 Unterverzeichnis habe ich nicht hinbekommen). Ich vermute mal in DOS (ohne externe Befehle) geht das gar nicht, oder sehr aufwendig und dann viel zu langsam. Brauche ich aber auch nicht. [ - Answer - Quote - Direct link - ] |
2013-09-11, 19:22 h Holger Posts: 8116 User |
Zitat:Was genau verstehst Du unter „DOS (ohne externe Befehle)“? -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2013-09-12, 13:34 h Tomas Posts: 33 User |
Directory-Scanning wird beschrieben auf der Developer-CD Reference/Amiga_Mail_Vol2/AmigaMail_Vol2/AmigaDos/Directory Scanning. Dort gibt es auch Beispiel Source-Codes in C. [ - Answer - Quote - Direct link - ] |
2013-09-12, 18:45 h DaxB Posts: 1422 User |
Mit "ohne externe Befehle" meinte ich keine Befehle die z.B. in C: liegen. Also nur interne (residente) Befehle aus dem ROM. Allerdings gehören auch einige "externe" Befehle zu DOS. Daher ist meine Kommentar unwichtig. @Tomas: Danke für die Info. Die CD habe ich nicht und mit C kann ich wenig anfangen. Zumindestens bin ich damals mit den Beispielen nicht klar gekommen. [ - Answer - Quote - Direct link - ] |
2013-09-12, 18:48 h Holger Posts: 8116 User |
@DaxB: Es wird Dir kaum gelingen, nur mit internen Befehlen ein sinnvolles DOS-Skript zu schreiben. Abgesehen davon kann AmigaDOS das Skript ohne den externen Befehl „execute“ nicht einmal ausführen… -- Good coders do not comment. What was hard to write should be hard to read too. [ - Answer - Quote - Direct link - ] |
2013-09-12, 23:49 h _PAB_ Posts: 3016 User |
@DaxB: Ich habe da schon seit geraumer Zeit ein Perl-Skript für solche Dateioperationen, welches Du gerne für Deine Zwecke abändern kannst: http://www.bourdin.ch/Philippe/?Amiga (siehe "Changer") [ - Answer - Quote - Direct link - ] |
-1- | [ - Post reply - ] |
amiga-news.de Forum > Amiga, AmigaOS 4 > Amiga DOS - Wie Dateien rekursiv löschen | [ - Search - New posts - Register - Login - ] |
Masthead |
Privacy policy |
Netiquette |
Advertising |
Contact
Copyright © 1998-2024 by amiga-news.de - all rights reserved. |