Datei in einen Ordner und in all dessen Unterordner kopieren

Hier dürfen auch unregistrierte Besucher posten.
Andreas72

Datei in einen Ordner und in all dessen Unterordner kopieren

Beitrag von Andreas72 »

Guten Tag.

Ich habe hier eine Arbeit zu erledigen (SD-Karte einzurichten) und komme einfach nicht weiter, vielleicht kann mir hier jemand helfen.

Auf meiner SD-Karte die zu einem SD2IEC-Floppy eines C64 gehört, befinden sich momentan 5 Ordner und darin insgesamt circa 2320 Unterordner. Diese sind auf die 5 Ordner aufgeteilt, also in jedem sind circa 500 Unterordner.

Nun habe ich hier eine recht kleine Filebrowser-Datei, die in jeden Ordner und in jeden einzelnen Unterordner hineinkopiert werden soll, damit mein Final-Cartridge-3 Modul immer auf den Browser zugreifen kann, ohne dass ich jedesmal vorher den Pfad wechseln muss. Die Tiefe der Unterordner geht bis maximal drei Ebenen. In jeden Unterordner soll nun also diese kleine Datei rein.

Erst versuchte ich dies per Hand zu erledigen mit kopieren und einfügen im Windows-Explorer, aber da wird man ja bescheuert bei soviel Unterordnern. Nach etwa 400 eingefügten Dateien, hatte ich erstmal genug. Also dachte ich mir, das geht bestimmt mit einer Kommandozeile im MSDOS. Einer meiner PC`s hat noch Win98 drauf, also ging ich dort ins DOS und hab rumprobiert und auch im Netz nach einem Befehlt gesucht, der diese Kopier-Aufgabe automatisch erledigen kann.

Ich finde zwar etliche Befehle, wenn es darum geht AUS UNTERORDNERN Sachen rauszukopieren, also etwa mit \E undsoweiter, aber ich finde keinen Befehl wie ich eine Datei automatisch in einen Ordner und in jeden einzelnen seiner Unterordner EINFÜGEN kann.

Vielleicht kann mir hier bei den DOS-Profis jemand weiterhelfen, das wäre prima. Gruß
Benutzeravatar
Daryl_Dixon
DOS-Übermensch
Beiträge: 1347
Registriert: Di 30. Jun 2015, 19:35

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Daryl_Dixon »

Ich würde mal sagen wenn das eine einmalige Sache ist, dann wird es trotz der Mühe besser
sein, das manuell - also Datei für Datei - zu erledigen. Wenn das Prozedere öfters gemacht
werden muß, kann man das alles ja in eine Batch-Datei hacken - Copy für Copy. Oder man
erledigt es mit Robocopy. Aber wie gesagt: wenns was Einmaliges ist, dann lohnt sich die
ganze Programmiererei nicht.

vG; Daryl_Dixon
Martin75
BIOS-Flasher
Beiträge: 396
Registriert: Mo 6. Jul 2015, 21:46

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Martin75 »

gibts unter dos auch for ..... do ...... Schleifen?

Oder nur unter Linux?
Martin75
BIOS-Flasher
Beiträge: 396
Registriert: Mo 6. Jul 2015, 21:46

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Martin75 »

Gibts wohl schon unter DOS.

Wäre sowas möglich wie

FOR %%a IN (dir *. ) DO Copy c:/datei.dat %%a/datei.dat
Andreas72

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Andreas72 »

Danke für die recht schnell kommenden Antworten.

Scheint also so zu sein wie ich befürchtete, daß man es mit einer einfachen Kommandozeile nicht lösen kann.

Oder klappt es mit dem Vorschlag von Martin75?

Ich will das mal versuchen, aber Martin, könntest du mir diese Befehlszeile bitte mal einzeln etwas erläutern. Ich kenne einige Befehle davon nicht und weiß jetzt nicht genau, wie ich sie für meinen Anwendungszweck genau eintippen muss.
Martin75
BIOS-Flasher
Beiträge: 396
Registriert: Mo 6. Jul 2015, 21:46

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Martin75 »

Tut mir leid, aber dieser Befehl funktioniert wohl so nicht, da ich selber noch nie mit for schleifen gearbeitet habe...

Wenn du magst probiere ich dass später mal durch... Ob ich es hinbekomme.

Evtl kann man auch eine indexdatei mit den unterverzeichnissen anlegen lassen und diese dann mit dem for befehl abarbeiten.

Die schleife wird dann ständig wiederholt, wobei sich der pfad %%a jedesmal ändert.
So dass die datei (datei.dat), also die datei welche du kopieren willst immer von c: in das aktuelle verzeichnis, welches in der variable %%a steht kopiert wird.

Google mal nach for do schleife.

PS: welche dos version nutzt du?
Andreas72

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Andreas72 »

Martin75 schrieb: "Wenn du magst probiere ich dass später mal durch... Ob ich es hinbekomme."

Ja, das wäre super, wenn du das mal probieren könntest. Ich hab hier selbst auch schon rumprobiert, aber es bislang nicht hinbekommen. Ich bin jetzt auch kein MSDOS-Profi, sondern beherrsche hauptsächlich die Standardkommandos, die man halt öfter mal so braucht. Mehr aber auch nicht. :)


Martin75 schrieb: "welche dos version nutzt du?"

Nachdem ich den Befehl "VER" eingetippt habe, zeigt er mir die Version 4.10.2222 an. Das ist die Version, welche auf meinem älteren Pentium3 800MHz-Rechner bei dessen Win98SE-Betriebssystem damals mit dabei war. Da der Rechner mit diesem Win98 all die Jahre über so super läuft, bestand nie eine Notwendigkeit abzudaten. Ich habe zwar noch einen neueren, zweiten PC, aber nutze den P3 mindestens genauso oft.
Martin75
BIOS-Flasher
Beiträge: 396
Registriert: Mo 6. Jul 2015, 21:46

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Martin75 »

Dann müsste das Dos 7 sein... ist bei Win98 dabei...

Ich komme aber erst morgen am späten Abend dazu auszuprobieren... hab viel Stress zur zeit.

Edit: habe folgendes gefunden:

FOR /f %%f IN (test.txt) DO echo %%f


Das könnte man abändern in

FOR /f %%f IN (dirs.txt) DO copy datei.dat %%f\datei.dat

Nun müsste man noch vorher eine datei anlegen in welcher alle Pfade eingetragen sind.

dir /s | find <DIR> > dirs.txt

Probiere mal den zweiten Befehl aus und schau was in der dirs.txt nun steht ...

aber wahrscheinlich sind auch so sachen wie datum enthalten und Ordner wie .. und .

diese müsste man noch rausfiltern...

PS: hab ich bisher nur aus dem Internet zusammengesucht und ungetestet!!!!

Also keine gewähr für irgendwelche Schäden und Dateiverluste.
Erstmal woanders testen.

EDIT2:

dir /s /a:d /b > dirs.txt

könnte auch ein Ansatz sein.
Andreas72

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Andreas72 »

Hallo. Hab es bislang nicht richtig hinbekommen. Ich wollte

dir /s | find <DIR> > dirs.txt

mal ausprobieren. Aber was ist das für ein Zeichen hinter dem dir /s und wie wird es geschrieben im DOS?

Denn dieses Zeichen hier " | " kann ich hier auch nur schreiben, indem ich es von Deinem kopiere. Unter DOS hab ich es bislang nicht gefunden.

Ich nenne jetzt mal die Ordner um die es geht, wie sie hier direkt heissen:

Die Datei die reinkopiert werden soll, heisst: !00

Der erste der fünf Überordner heisst: m2i-files

Darin befinden sich die Unterordner: 0-9, A, B, C, D ....... bis Z

In diesen Unterordnern 0-9 bis Z befinden sich dann nochmals eine Menge Ordner, die eigentlichen Ordner jedes einzelnen Demos und Tools.

Wie genau müsste nun der Befehl eingetippt werden, wenn ich die Datei "!00" in den ersten Überordner namens "m2i-files" kopieren will und in jeden seiner Unterordner, die, wie oben zu sehen, zwei Ebenen in der Tiefe belegen.
Martin75
BIOS-Flasher
Beiträge: 396
Registriert: Mo 6. Jul 2015, 21:46

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Martin75 »

Ich werde morgen mal eine solche Ordnerstrucktur nachbauen und dass versuchen.

Probiere mal den zweiten befehl und schau dir dirs.txt an.

da sollte dann sowa drin stehen wie:
Ordner1
Ordner1/Ordner2
Ordner1/Ordner2/A
Ordner1/Ordner2/B
usw...


Nur halt mit deinen Namen.

Der erste befehl liest die dirs.txt zeile für zeile aus und kopiert (im beispiel) die datei.dat an jede stelle.
quasi füre jede zeile in dirs.txt wird der copy befehl wiederholt, es wird nur immer die variable %%a oder %%f durch den entsprechenden text aus dirs.txt ersetzt.


Ach ja, der Befehl (pipe) müsstest du mit alt-gr und der Taste neben y (die mit dem grösser/kleiner Zeichen) eingeben können.
Andreas72

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Andreas72 »

Das funktioniert soweit, mit diesem Befehl hier, den du geschrieben hattest: dir /s /a:d /b > dirs.txt

Im Überordner (also dem Ordner, von dem aus ich den Befehl eintippe) wird dann ein "dirs.txt" File angelegt, in dem die ganze Verzeichnisstruktur jedes einzelnen enthaltenen Ordners und auch jedes einzelnen Unterordners geschrieben steht. Eine riesige Litanei in dem Fall hier und das txt-File ist fast 100kb gross.

Es geht auch bis in die dritte Ebene, also alles wird angezeigt, auch der Ordner jedes einzelnen Demos, Spiels und Tools.
Andreas72

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Andreas72 »

Ich habe jetzt mal ein paar Files mitsamt Ordnern genommen und eine Sicherheitskopie angefertigt, mit der ich den Copy-Befehl zunächst mal testen will. Ist sicherer, nicht dass irgendwas schiefgeht. Dann hab ich zu diesen paar kopierten Ordnern nochmals ein neues "dirs.txt" File erstellt.

Nun ging ich in den Überordner hinein, in dem sich sowohl das neu erstellte "dirs.txt" File, als auch das hineinzukopierende "!00" File befindet und hab dann folgendes eingetippt

for /f %%f IN (dirs.txt) DO copy !00 %%f\!00

erhalte dann aber einen Syntax-Fehler. Oder muss ich die Klammern weglassen bei (dirs.txt)? Wie gesagt, ich bin nicht so der Fachmann mit DOS und kannte manche dieser Befehle bislang überhaupt nicht.
Martin75
BIOS-Flasher
Beiträge: 396
Registriert: Mo 6. Jul 2015, 21:46

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Martin75 »

Ich hab mit dem Befehl auch noch ned gearbeitet.. Hab aber gelesen dass er für .bat dateien ist.

wenn du ihn direkt eingibst darf man nur ein % eingeben.

Vielleicht liegt es daran..

Sind in der dirs txt auch die Laufwerksangaben ?
Also C:/Ordner1
oder nur Ordner1 ?
idspispopd
Norton Commander
Beiträge: 108
Registriert: Fr 8. Mai 2015, 22:28
Wohnort: Hamburg

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von idspispopd »

Ohne mich mit dem Problem jetzt näher beschäftigt zu haben bin ich etwas irritiert über die Aussage "Einer meiner PC`s hat noch Win98 drauf". Auch neuere Windows-Systeme haben eine Kommandozeile, die vermutlich sogar mehr Features bietet als ein echtes DOS. Inzwischen gibt es dazu noch die PowerShell, ich weiß nicht bei welchen Windows-Versionen die dabei ist, kann man aber auch so installieren.
Da man eine SD-Karte problemlos an einen aktuellen Rechner anschließen kann ist das für mich kein Problem, das unbedingt einen alten Rechner und DOS erfordert.

Wenn ich allgemein nach diesem Problem suche finde ich http://stackoverflow.com/questions/1402 ... subfolders und http://stackoverflow.com/questions/1321 ... 39#1321539 , das sieht eigentlich ganz gut aus und scheint sich auf die Windows-Kommandozeile zu beziehen.
Andreas72

Re: Datei in einen Ordner und in all dessen Unterordner kopi

Beitrag von Andreas72 »

Martin75 schrieb: "wenn du ihn direkt eingibst darf man nur ein % eingeben."

Hab es jetzt mal mit nur jeweils einem % an den beiden Stellen probiert, aber es kommt immernoch ein Syntaxfehler.
Irgendwas stimmt also nicht bei dem Befehl. Vielleicht kannst du es auf deinem PC mal gegentesten, ob der Fehler bei dir dann auch kommt.



Martin75 schrieb: "Sind in der dirs txt auch die Laufwerksangaben ? Also C:/Ordner1. Oder nur Ordner1 ?"

Da sind die kompletten Pfade angegeben also mit C:/ usw. Also das passt soweit schon.


idspispopd schrieb: "Ohne mich mit dem Problem jetzt näher beschäftigt zu haben bin ich etwas irritiert über die Aussage "Einer meiner PC`s hat noch Win98 drauf". Auch neuere Windows-Systeme haben eine Kommandozeile, die vermutlich sogar mehr Features bietet als ein echtes DOS."

Das wusste ich so nicht. Ich ging immer davon aus, daß die 9x-Versionen von WINDOWS, aufgrund des echten DOS was sie dabeihaben, mehr Features in der Richtung bieten würden und es sich deshalb auf diesen Systemen eher realisieren lässt. Diese von dir verlinkten Seiten hatte ich vorher schon gefunden, als ich selbst gegoogelt habe. Da wusste ich aber nicht, wie und wo ich die dann so eingeben soll, beziehungsweise es hat überhaupt nicht funktioniert.
Antworten