Datei in einen Ordner und in all dessen Unterordner kopieren

Hier dürfen auch unregistrierte Gäste posten.

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

Beitragvon Martin75 » Di 19. Jan 2016, 22:25

Ich hab mal einen Ordner TEST erstellt mit den Unterordnern DEMOS und SPIELE.
Diese haben jeweils Unterordner a,b,c

Dann bin ich im Ordner TEST (hier ist auch die Datei !00) und gebe folgendes ein:

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

Nun wird eine Datei erstellt in der alle Ordner mit Unterordner aufgelistet sind.

nun versuche ich die Datei zu verarbeiten, dazu gebe ich

for /f %f IN (dirs.txt) DO echo %f

nun wird Zeile für Zeile auf dem Bildschirm ausgegeben
Martin75
617K-Frei-Haber
 
Beiträge: 329
Registriert: Mo 6. Jul 2015, 20:46

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

Beitragvon Martin75 » Di 19. Jan 2016, 22:34

Nun gebe ich

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

ein, damit wird die Datei !00 in alle Unterordner kopiert.

Es reicht auch ein:

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


Getestet in der Eingabeaufforderung von Windows XP
Martin75
617K-Frei-Haber
 
Beiträge: 329
Registriert: Mo 6. Jul 2015, 20:46

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

Beitragvon Martin75 » Di 19. Jan 2016, 22:53

Die vorherige Lösung hatte Probleme mit Leerzeichen im Pfad..

Hier eine neue Lösung:

for /r /d %f IN (*.*) DO copy !00 "%f"

/r bedeutet rekursiv, also mit Unterordnern.
/d bedeutet dass nur Verzeichnisse zurückgemeldet werden

%f ist die Variable

!00 ist die Datei welche überallhin kopiert werden soll.

"%f" ist das Ziel wo die Datei hinkopiert werden soll. (In "" wegen Leerzeichen im Pfadnamen.

Hoffe es funktioniert bei dir auch.

Vielen dank an alle, Besonders für den Link von idspispopd. Damit wusste ich erst dass es bei for den Parameter /r und /d gibt.
Martin75
617K-Frei-Haber
 
Beiträge: 329
Registriert: Mo 6. Jul 2015, 20:46

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

Beitragvon Andreas72 » Mi 20. Jan 2016, 00:53

Danke für die Mühe erstmal.

Ich bekomme hier immer einen Syntaxfehler. Muss ich wohl irgendwas falsch machen?

Es klappt bis dahin, dass eine Datei namens "dir.txt" erstellt wird.

Der Befehl um diese Datei zu verarbeiten, also der hier

for /f %f IN (dirs.txt) DO echo %f

gibt schon einen Syntaxfehler. Eine Frage nochmal für DOS-Anfänger, auch wenn die Frage vielleicht blöd klingt für jemanden wie du, der jetzt tiefer in der Materie drin ist. Ich muss das Wort (dirs.txt) genauso in Klammern eingeben und muss ich hinten diese Variable %f genauso schreiben, oder muss ich hier dann den direkten Namen meines Zielordners stattdessen schreiben?

Auch diese Befehle hier, hab ich genauso eingetippt, aber alle drei geben ebenfalls einen Syntaxfehler hier:

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

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

for /r /d %f IN (*.*) DO copy !00 "%f"
Andreas72
 

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

Beitragvon Andreas72 » Mi 20. Jan 2016, 01:20

Hab weiter rumgetestet mit leicht veränderten Befehlen nach dem was ich auf der verlinkten Seite fand, aber klappt einfach nicht. So ein Mist!

Kann es vielleicht sein, dass meine MSDOS Version zu alt ist? Wenn ich VER eintippe, bekomme ich Version 4.10.2222 angezeigt. Muss es mal auf dem anderen Rechner probieren, nur ist der gerade nicht greifbar. Das geht erst ab Freitag wieder.
Andreas72
 

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

Beitragvon Martin75 » Mi 20. Jan 2016, 06:46

Ja möglicherweise ist deine Dos version zu alt.
EDIT: Ja so wie es aussieht wird mindestens eine NT4/2000 Version benötigt.


Werde heute Abend das mal auf win98 probieren.

Und ja, die klammer muss eingegeben werden.

Edit:

versuch mal die zeile mit dem echo Befehl, aber ohne /f

also

for %a in (dirs.txt) do echo %a
Martin75
617K-Frei-Haber
 
Beiträge: 329
Registriert: Mo 6. Jul 2015, 20:46

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

Beitragvon Andreas72 » Mi 20. Jan 2016, 20:41

Ich werde das mal auf meinem anderen PC probieren. Ich habe noch einen Laptop mit Win2000, auf dem teste ich das. Aber das geht erst am Freitag, weil dieser PC in meiner anderen Wohnung ist, in der ich am Wochenende immer bin. Mal sehen ob es da dann geht, da dürfte eine höhere DOS-Version drauf sein.

Den Befehl

for %a in (dirs.txt) do echo %a

hab ich mal so eingegeben und erhalte hier dann keine Fehlermeldung. Sondern folgendes ist dann am Screen zu sehen:

i:\test>echo dirs.txt
dirs.txt

Ansonsten tut sich nichts weiter. Nur diese zwei Zeilen werden dann so ausgegeben. "Test" ist der Name meines Ordners, in dem ich jetzt die Versuche mache.
Andreas72
 

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

Beitragvon Martin75 » Do 21. Jan 2016, 00:36

Ich bekomms unter windows98 auch nicht hin.

entweder syntaxfehler oder eben nur "dirs.txt" als Ausgabe wie bei dir.

Anscheinend wird das lesen innerhalb von Dateien erst ab einer höheren for-version unterstützt.

Auch der parameter /f /d oder /r bringt einen syntaxfehler
Martin75
617K-Frei-Haber
 
Beiträge: 329
Registriert: Mo 6. Jul 2015, 20:46

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

Beitragvon Andreas72 » Do 21. Jan 2016, 01:40

Ich konnte doch nicht bis Freitag abwarten und bin mal zum Nachbarn rübergegangen mit einem USB-Stick und den Dateien. Den Nachbarn kenne ich schon ewig, also war kein Problem mal kurz seinen älteren Laptop zu benutzen auf dem Win2000 drauf ist wegen der Kopier-Sache. Die MSDOS Version dort ist 5.00.2195.

Erst hatte ich etwas bedenken, die Files auf die dortige Platte zu kopieren, da diese nicht im FAT32-Format, sondern im NTFS-Format ist und ich befürchtete, dass vielleicht irgendwas an den File-Attributen der einzelnen Dateien verändert wird. Sieht aber jetzt im Nachhinein nicht danach aus, war also unbegründet.


Tja, was soll ich sagen, es hat funktioniert. Und zwar mit folgenden, von deinen Befehlen:

dir /s /a:d /b > dirs.txt - um das dirs.txt File zu erstellen


und dann


for /r /d %f IN (*.*) DO copy !00 "%f"

um das File in alle Unterordner zu kopieren.

Dann ging es ordentlich ab am Bildschirm, denn man sieht tausende durchlaufende Ordner, in die dann das File kopiert wird. Zum Glück musste ich das nicht per Hand erledigen.

Hab dann mal in einige der Ordner und Unterordner reingesehen bis zur dritten Ebene und das File ist überall vorhanden. Es hat also geklappt. :)


Martin, VIELEN DANK für deine Mühe!!!

Das hat mir eine Menge stundenlanger, vielleicht sogar tagelanger, manueller Einfüge-Arbeit erspart und dieser automatische Kopiervorgang ging sehr schnell. Das war innerhalb von knapp einer Minute erledigt. Jetzt kann ich meine SD2IEC-SD-Karte endlich komplett fertigmachen.
Andreas72
 

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

Beitragvon Andreas72 » Do 21. Jan 2016, 01:45

Ach nochwas. Ist für mich auch gut gewesen das Ganze, weil ich jetzt zumindest einigermaßen weiß, wie das mit diesen Batch-Files unter DOS funktioniert. Da hatte ich vorher absolut null Ahnung davon. Ich werde mir den Text dieses Threads hier, als HTML abspeichern. Vielleicht brauch ich das ja irgendwann nochmal.

Gutes Forum hier, hat sich echt gelohnt, hier nachzufragen. Das Forum habe ich in meine Lesezeichen im Firefox mit reingenommen.

Gruß
Andreas72
 

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

Beitragvon Martin75 » Do 21. Jan 2016, 06:41

Wenn du dir den zweiten Befehl (for .....) anschaust, siehst du dass da kein dirs.txt mehr drin vorkommt.
Diese Datei wird also nicht benötigt.
Wenn du sie aber trotzdem vorher erstellt hast..... Kein Problem.

Es reicht also der for-befehl alleine.

Kannst du mal überprüfen ob die Datei wirklich in allen ordnern drin ist?
Also auch in Ordnern mit Leerzeichen oder Sonderzeichen im Namen?

PS: Konnte meine Kenntnisse auch wieder auffrischen und hab was dazugelernt.
Bis dann, bis zum nächsten Problem, Gruss Martin.
Martin75
617K-Frei-Haber
 
Beiträge: 329
Registriert: Mo 6. Jul 2015, 20:46

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

Beitragvon Andreas72 » Do 21. Jan 2016, 06:55

Martin75 schrieb: "Es reicht also der for-befehl alleine."

Werde ich mir notieren, falls ich das nochmal brauche. Dann muss also kein File angelegt werden, okay. Richtig, es kam kein (dir.txt) im Befehl vor, gewundert hatte ich mich darüber auch schon. Trotzdem aber sicherheitshalber mal ein Batchfile erstellt.


Martin75 schrieb: "Kannst du mal überprüfen ob die Datei wirklich in allen ordnern drin ist? Also auch in Ordnern mit Leerzeichen oder Sonderzeichen im Namen?"

Die Unterordner die in der Ebene unter den A,B,C,D... Ordnern kommen, enthalten fast alle ein Leerzeichen. Aber ich hab in einige geschaut, das File wurde überall reinkopiert. Ordner mit Sonderzeichen fand ich jetzt keine als ich mal durch die Verzeichnisse geschweift bin. Ich glaube, da sind keine dabei, auch nicht mit ü, ö, ä oder ß. Könnte man aber testweise mal ausprobieren, ob auch da hineinkopiert wird.


Martin75 schrieb: "Bis dann, bis zum nächsten Problem, Gruss Martin."

Ja, bis irgendwann mal, ich werde sicher von Zeit zu Zeit hier mal einen Blick reinwerfen ins Forum. Gute Zeit dann. :)
Andreas72
 

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

Beitragvon Heilbar » Do 21. Jan 2016, 07:20

Martin75 hat geschrieben:PS: Konnte meine Kenntnisse auch wieder auffrischen und hab was dazugelernt.
Bis dann, bis zum nächsten Problem, Gruss Martin.


Auch ich bedanke mich für eure Mühe und erfolgsträchtige Geduld, als stiller Mitleser.

Das Ergebniss hab ich mir auch zu den Akten gelegt (win 2000 / Nt4.....Dos 5.00.2195) :like:
dir /s /a:d /b > dirs.txt - um das dirs.txt File zu erstellen
for /r /d %f IN (*.*) DO copy !00 "%f" - um in alle Unterordner zu kopieren

Erstaunlich wie marginal unterschiedlich die Dos-Versionen nach '98 weiterlaufen.
Benutzeravatar
Heilbar
DOS-Übermensch
 
Beiträge: 1678
Registriert: Mi 5. Mär 2014, 07:25
Wohnort: Hamburg

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

Beitragvon idspispopd » Do 21. Jan 2016, 12:10

Andreas72 hat geschrieben:Ich konnte doch nicht bis Freitag abwarten und bin mal zum Nachbarn rübergegangen mit einem USB-Stick und den Dateien. Den Nachbarn kenne ich schon ewig, also war kein Problem mal kurz seinen älteren Laptop zu benutzen auf dem Win2000 drauf ist wegen der Kopier-Sache. Die MSDOS Version dort ist 5.00.2195.

Das ist kein DOS. Bei Windows 98 oder Windows ME läuft DOS drunter, da kann man bei der Kommandozeile ggf. von einem DOS-Fenster sprechen. Aber bei Windows NT/2000/XP/... ist das definitiv kein DOS mehr, auch wenn auf der Kommandozeile größtenteils die gleiche Syntax unterstützt wird.

Außerdem mal ein Zitat aus den Foren-Regeln:
viewtopic.php?t=6

"2.2 Windows

NICHT diskutiert werden dürfen NT, 2000, XP, Vista, Windows 7/8/10, etc...

Auch "DOS-Fenster" / "Shell" / "Kommandozeile" gehören nicht in unser Forum, auch wenn sie oft mit "echtem MS-DOS" verwechselt werden. Dies gilt auch und insbesondere für Batch-Programmierung und Windows-Scripting in aktuellen Windows-Versionen!

Im Offtopic-Bereich gelten weniger strenge Regeln, solange ein bestimmtes Thema dort nicht überhand nimmt."
idspispopd
Norton Commander
 
Beiträge: 108
Registriert: Fr 8. Mai 2015, 21:28
Wohnort: Hamburg

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

Beitragvon Georg45 » Fr 22. Jan 2016, 07:05

*lol* Da wird jemanden geholfen und das Thema ist noch interessant dazu und dann schreibt "idspispopd", weil es nun kein echtes DOS mehr ist, auf dem dieser Befehl funktionierte (denn das tat er ja offensichtlich auf WIN98 nicht), hätte man dem Fragesteller dann lieber gar nicht helfen sollen.

Sorry, aber was ist das denn für ein kleinlicher Schwachsinn! Die Frage bezog sich auf einen DOS-Befehl, der so eben nicht unter älteren DOS Versionen funktionierte. Hätte man dann lieber das Thema abbrechen sollen, anstatt dem Fragesteller den Befehl zu nennen, wie er ihn dann unter einer neueren DOS-Version, oder eben im Win2000 DOS-Eingabefenster eintippen kann?

Ich will MARTIN75 ein grosses Lob aussprechen, dass er so zielstrebig die Lösung mit erarbeitet hat und dem User dann geholfen hat. Das gleiche hat ja auch HEILBAR schon geschrieben. Nur so macht es Sinn, überhaupt einen Gästebereich zu haben, wenn man den Leuten auch helfen kann.
Georg45
 

VorherigeNächste

Zurück zu Gästeforum

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder und 3 Gäste