ENGLISH VERSION |
|
Links | | | Forum | | | Kommentare | | | News melden |
Chat | | | Umfragen | | | Newsticker | | | Archiv |
amiga-news.de Forum > Amiga, AmigaOS 4 > Amiga DOS - Wie Dateien rekursiv löschen | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
-1- | [ - Beitrag schreiben - ] |
08.09.2013, 10:42 Uhr Yvan Posts: 334 Nutzer |
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? [ - Antworten - Zitieren - Direktlink - ] |
08.09.2013, 12:10 Uhr DaxB Posts: 1422 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
08.09.2013, 12:12 Uhr _PAB_ Posts: 3016 Nutzer |
@Yvan: Du kannst das relativ einfach mit einem "Weihnachtsbaum" erreichen: delete *.BAK delete */*.BAK delete */*/*.BAK [...] [ - Antworten - Zitieren - Direktlink - ] |
08.09.2013, 12:23 Uhr Yvan Posts: 334 Nutzer |
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. ] [ - Antworten - Zitieren - Direktlink - ] |
08.09.2013, 13:47 Uhr Thore Posts: 2266 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
08.09.2013, 16:57 Uhr Dave Posts: 63 Nutzer |
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 [ - Antworten - Zitieren - Direktlink - ] |
10.09.2013, 12:13 Uhr Tomas Posts: 33 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
10.09.2013, 15:47 Uhr thomas Posts: 7718 Nutzer |
@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/ [ - Antworten - Zitieren - Direktlink - ] |
11.09.2013, 13:38 Uhr DaxB Posts: 1422 Nutzer |
Kennt jemand ein Beispielalgorithmus wie man unter DOS oder ARexx rekursiv Dateien erreicht. Also wie es das Schlüsselwort ALL macht? [ - Antworten - Zitieren - Direktlink - ] |
11.09.2013, 13:41 Uhr Thore Posts: 2266 Nutzer |
@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? [ - Antworten - Zitieren - Direktlink - ] |
11.09.2013, 13:46 Uhr thomas Posts: 7718 Nutzer |
@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. ] [ - Antworten - Zitieren - Direktlink - ] |
11.09.2013, 18:02 Uhr DaxB Posts: 1422 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
11.09.2013, 19:22 Uhr Holger Posts: 8116 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
12.09.2013, 13:34 Uhr Tomas Posts: 33 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
12.09.2013, 18:45 Uhr DaxB Posts: 1422 Nutzer |
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. [ - Antworten - Zitieren - Direktlink - ] |
12.09.2013, 18:48 Uhr Holger Posts: 8116 Nutzer |
@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. [ - Antworten - Zitieren - Direktlink - ] |
12.09.2013, 23:49 Uhr _PAB_ Posts: 3016 Nutzer |
@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") [ - Antworten - Zitieren - Direktlink - ] |
-1- | [ - Beitrag schreiben - ] |
amiga-news.de Forum > Amiga, AmigaOS 4 > Amiga DOS - Wie Dateien rekursiv löschen | [ - Suche - Neue Beiträge - Registrieren - Login - ] |
Impressum |
Datenschutzerklärung |
Netiquette |
Werbung |
Kontakt
Copyright © 1998-2024 by amiga-news.de - alle Rechte vorbehalten. |