viking
Goto Top

Kopieren von Dateien aus Dateiliste

Hallo, kleine Frage zu kopieren einer Dateiliste. Ich finde zwar im Forum ähnliche Fragen, mir hilft aber keine so richtig weiter, ...
und ich soll einige hundert Bilder aus mehren Tausend suchen und entwickeln lassen face-wink

Ich nutze zum Erzeugen einer Dateiliste im Ordner E:\Bilder folgenden Befehl.
Dir E:\Bilder / a / b / o /d / s> Bilderliste.txt
Damit erhalte ich nun eine schöne Textdatei im Ordner E:\Bilder als Liste mit allen Bildern aus den Unterordnern.
Aus der Liste entferne ich nun nicht relevante Datensätze.

Im Anschluss daran möchte ich die Dateien der überarbeiteten Bilderliste.txt in den Ordern E:\Entwickeln kopieren.
Wie kann ich das nun mit einem batchfile lösen?

Gruß viking

Content-ID: 156444

Url: https://administrator.de/forum/kopieren-von-dateien-aus-dateiliste-156444.html

Ausgedruckt am: 10.01.2025 um 11:01 Uhr

Skyemugen
Skyemugen 06.12.2010, aktualisiert am 18.10.2012 um 18:44:18 Uhr
Goto Top
Aloha,

dieser Beitrag hier hilft dir nicht weiter? Denn das Schema sieht mir doch sehr gleich aus (lässt sich ja noch variieren) à la include statt exclude.

greetz André

EDIT: hm so sollte es eigentlich klappen: (ausgehend davon, dass deine .txt-Datei im Verzeichnis E:\Bilder liegt

@echo off
cd E:\Bilder
for /F "delims=," %%i in (Bilderliste.txt) do copy %%i E:\Entwickeln\  
bastla
bastla 06.12.2010 um 17:05:06 Uhr
Goto Top
@Skyemugen
Etwas genauer (da ja auch Dateinamen/Pfade mit "," oder mit Leerzeichen enthalten sein könnten):
@echo off & setlocal
for /f "usebackq delims=" %%i in ("E:\Bilderliste.txt") do copy "%%i" "E:\Entwickeln\" >nul  
In dieser Version dürfte auch der Name oder der Pfad der Listendatei noch Leerzeichen enthalten ...

Grüße
bastla
Skyemugen
Skyemugen 06.12.2010 um 17:21:09 Uhr
Goto Top
@bastla

mhm stimmt, daran hatte ich jetzt beim Test nicht gedacht (wenn's mal wieder schnell gehen soll ^.^), in Sachen FOR bin ich ja noch am Lernen *lach* aber man tut, was man kann, hehe

Grüße André
viking
viking 07.12.2010 um 09:03:31 Uhr
Goto Top
Wieder mal Danke bastla und auch André

funktioniert excelent wie gewünscht.


Gruß viking
Nightowl71
Nightowl71 30.11.2014 um 11:26:54 Uhr
Goto Top
hallo zusammen!!!

ich habe lange gesucht im internetz und bin fast fündig hier geworden ;)
das batch file entspricht nicht ganz meinen vorstellungen.

was ich gern hätte, wäre:

habe eine verzeichnissliste

c:\test\blabla
c:\test\blablablabla
d:\test\blablablabla
d:\test\blablablablablablablabla

diese 4 verzeichnisse sollen mit inhalt (komplett) an einen von mir vorgegebenen ort kopiert werden.
wie müsste das script geändert werden?

danke für eure hilfe...

ein schönes we
bastla
bastla 02.12.2014 um 19:55:50 Uhr
Goto Top
Hallo Nightowl71 und ein etwas verspätetes Willkommen im Forum!

Im einfachsten Fall etwa so:
@echo off & setlocal
set "Liste=D:\Deine Liste.txt"  
set "Ziel=X:\Test"  
for /f "usebackq delims=" %%i in ("%Liste%") do xcopy /e "%%i" "%Ziel%\%%~nxi\"  
Es werden so am angegebenen Ziel die Verzeichnisse mit den ursprünglichen Namen (die Pfade werden dabei nicht beachtet) erstellt.

Grüße
bastla
Nightowl71
Nightowl71 03.12.2014 um 17:54:30 Uhr
Goto Top
das klappt ja super. so wie ich mir das wünsche face-smile
hätte nicht gedacht, das ich so schnell hilfe bekomme...

vielen vielen dank für deine schnelle hilfe!!!!

glg
Nightowl71
Nightowl71 23.12.2014 um 12:41:06 Uhr
Goto Top
ich nochmals face-smile

weis, das das sicher nicht das richtge thema dafür ist, vll gibt es ja trotzdem hilfe für mich!

problem robocopy
möchte ein verzeichniss meiner wahl spiegeln.
c:\test nach d:\test
nun sollen alle dateien nach d:\test kopiert werden und die veränderten datein (ersetzt durch die neuen, wenn es welche gibt) auch.
welche parameter müssen in der cmd line gesetzt werden.

problem winrar.
for /d %i in (*) do start /wait winrar x "%i"\*.zip "%i" << das scipt arbeit super, nur ein problem, wenn ich ein verzeichniss ohne zip datei habe, meckert winrar und bringt ne meldung "kein archiv gefunden", man muss auf okay klicken, dann geht es wie gewohnt weiter. lässt sich das umgehen ohne das man jedesmal auf okay klicken muss?

nochmals zu diesem winrar script.
was muss man ändern, wenn man archive entpacken möchte, die genau so verschachtelt sind.

c:\test\test\test\*.zip

ich gehe in das erste test verzeichniss, öffne cmd und möchte die zips in den jeweiligen verzeichnissen entpacken lassen.

oh oh face-smile
sehr viel auf einmal, ich weis!

ich wünsche schöne weihnachten!!!

glg
bastla
bastla 23.12.2014 aktualisiert um 13:16:24 Uhr
Goto Top
Hallo Nightowl71!
nun sollen alle dateien nach d:\test kopiert werden und die veränderten datein (ersetzt durch die neuen, wenn es welche gibt) auch.
Versuch es mit dem Schalter "/xo".
for /d %i in (*) do start /wait winrar x "%i"\*.zip "%i"
Etwa so:
for /d %i in (*) do if exist "%i\*.zip" winrar x "%i\*.zip" "%i"
was muss man ändern, wenn man archive entpacken möchte, die genau so verschachtelt sind.
Wenn für die Datei "c:\test\test\test\1.zip" das Zielverzeichnis "c:\test\test\test" sein soll, könnte das so gehen:
for /r "c:\test" %i in (*.zip) do winrar x "%i" "%~dpi"
Um in ein Unterverzeichnis "1" zu entpacken eher so:
for /r "c:\test" %i in (*.zip) do winrar x "%i" "%~dpni"
Alle Ansätze sind übrigens ungetestet ... face-wink

Grüße
bastla
Nightowl71
Nightowl71 23.12.2014 um 16:14:07 Uhr
Goto Top
hmm, hab zwar keine ahnung wie du das so schnell schaffst, aber es geht alles super!!!
hoffe, das das auch unter win7 so gut geht. habe es auf xp getestet!!!

vielen vielen dank für deine erneute hilfe!!

glg
Nightowl71
Nightowl71 25.12.2014 um 13:31:12 Uhr
Goto Top
hallo face-smile

Etwa so:
for /d %i in (*) do if exist "%i\*.zip" winrar x "%i\*.zip" "%i"

script arbeitet unter win7 nur zum teil gut....wenn ich 10 archive habe, will winrar sie gleich alle auf einmal starten nicht zip für zip. lässt sich das ändern?

glg und schöne feiertage
bastla
bastla 25.12.2014 um 22:01:53 Uhr
Goto Top
Hallo Nightowl71!

Hilft es, wenn Du wieder "start /wait" verwendest?

Grüße
bastla
Nightowl71
Nightowl71 26.01.2015 um 03:17:11 Uhr
Goto Top
hi bastla,

hab bis eben das testen des scripts völlig ignoriert, weil ich keine lust hatte, viele zips auf pause zu setzten oder ich was falsches eingebe etc. also mit dem start /wait befehl geht das so, wie ich es wollte!!!!
das script liest die verzeichnisse und überspringt verzeichnisse wo keine zips enthalten sind....

fetzt face-smile

viel arbeit erspart dankt deiner hilfe...

in wie weit das geht, wenn die strucktur anders ist, habe ich noch ncht getestet,,,,,

ein grosses dankeschön, wenn auch verspätet!!!!!!

bei problemen, weis ich, wo ich einen fähigen menschen fragen kann ;)
Nightowl71
Nightowl71 26.01.2015 um 03:59:05 Uhr
Goto Top
Wenn für die Datei "c:\test\test\test\1.zip" das Zielverzeichnis "c:\test\test\test" sein soll, könnte das so gehen:

for /r "c:\test" %i in (*.zip) do start /wait "C:\Programme\WinRAR\winrar" "%i" "%~dpi" <<< das geht mit der ordner strucktur

aber nicht in c:\test\1.zip (mit start /wait) befehl....

widerum, was muss man ändern...wenn ich das entpacken möchte!!!!
wenn das geht, werde ich so schnell nicht wieder nerven face-smile
bastla
bastla 26.01.2015 um 22:21:57 Uhr
Goto Top
Hallo Nightowl71!

Sorry - kann Dir nicht wirklich folgen ...

Was genau funktioniert wie nicht?

Grüße
bastla
Nightowl71
Nightowl71 27.01.2015 um 12:20:15 Uhr
Goto Top
hi bastla,

alles in ordnung, dein script arbeit super in allen ordnerstruckturen. hatte sicher ein schreibfehler drin...
so ich werd, wie versprochen deshalb nicht weiter nerven face-smile

danke nochmals...

lg
rum3baer
rum3baer 28.04.2015 um 12:07:13 Uhr
Goto Top
Hi,

ich bin durch Google auf diesen Thread aufmerksam geworden, und habe das Batchfile für meine Bedürfnisse angepasst. Es funktioniert auch alles super :D

Nun würde ich gerne noch etwas hinzufügen...

wenn in der Liste(nur PDFs) eine Datei zweimal vorhanden ist, müsste sie auch zweimal kopiert werden und dazu (mit einem Zähler?) umbenannt werden.


Kurz zum Hintergrund.

Ich erhalte jeden Tag mehrere Bestellung als Excel Tabelle. Aus diesen Tabellen erzeuge ich dann die Dateilisten für die batch-Datei.

Die Liste kann Dateien enthalten die:

A ) nicht vorhanden sind

B) vorhanden sind

C) mehrfach vorhanden sind

Momentan habe ich folgenden Ablauf.

1. Bestellliste in meine Exceltabelle importieren
2. Dateiliste wird erzeugt
3. Batchskript startet automatisch und kopiert die Dateien in einen Ordner und schreibt den Ordnerinhalt in ein Textfile
4. Das Textfile des Ordnerinhaltes wird wieder in Excel importiert.
5. Liste wird nun nach vorhandenen und nicht vorhanden Dateien sortiert und ausgegeben
6. Dateien die mehrfach vorhanden waren, werden jetzt manuell vervielfacht <-- DAS MÖCHTE ICH VERMEIDEN
7. Im Anschluss werden die Daten in einem Layoutprogramm verschachtelt und Druckbögen erzeugt.

Ist mein Anliegen verständlich??
bastla
bastla 28.04.2015 um 14:57:46 Uhr
Goto Top
Hallo rum3baer und willkommen im Forum!

Für das Hinzufügen eines Zählers bei bereits vorhandener Zieldatei solltest Du einige Beispiele hier im Forum finden - eines davon schematisch etwa hier ...

Grüße
bastla
rum3baer
rum3baer 08.05.2015 um 11:35:22 Uhr
Goto Top
Vielen Dank...genau das habe ich gesucht face-smile

Grüße der rum3baer
patme1
patme1 01.10.2015 aktualisiert um 10:39:30 Uhr
Goto Top
Hi
auch ich habe dies Batch verwendet und es funktioniert soweit ganz gut, außer:

In meiner Textdatei mit den Quelldateien sind Sonderzeichen, wie ñ oder ä,öü.

setlocal
for /f "usebackq delims=" %%i in ("C:\quelldatei.txt") do copy "%%i" "C:\ZielOrdner\"   

pause


Diese Dateien werden dann jeweils nicht kopiert. Was kann ich da machen?

Gruß und Danke
Patrick
patme1
patme1 27.11.2015 um 14:34:57 Uhr
Goto Top
setlocal

for /f "usebackq delims=" %%i in ("C:\Users\DJ Pult\Desktop\Dateilisten kopieren\test.txt") do (chcp 1252 copy "%%i" "C:\Users\DJ Pult\Desktop\Dateilisten kopieren\test_kopiert\" chcp 850)   
pause


So habe ich es jetzt versucht, doch es funktioniert immer noch nicht. Kann mir jemand helfen. Bin dankbar für jede Hilfe.
Gruß
bastla
bastla 27.11.2015 um 16:24:44 Uhr
Goto Top
Hallo patme1!

Wenn schon, dann eher so:
setlocal
chcp 1252
for /f "usebackq delims=" %%i in ("C:\Users\DJ Pult\Desktop\Dateilisten kopieren\test.txt") do copy "%%i" "C:\Users\DJ Pult\Desktop\Dateilisten kopieren\test_kopiert\"  
chcp 850
pause
Grüße
bastla
Eldebs
Eldebs 15.04.2016 um 11:26:49 Uhr
Goto Top
Hallo zusammen,

nachdem ich schon einige Foren durch habe und am Verzweifeln bin, muss ich doch mal in diesem Thread einsteigen und um Hilfe bitten.

Auch ich möchte div. Dateien anhand einer Liste suchen (Hauptverzeichnis inkl. Unterverzeichnisse) und die gefundenen Dateien in ein bestimmtes Zielverzeichnis kopieren. Klasse, wäre noch, wenn eine Art Log erstellt werden würde von den Dateien, die nicht gefunden wurden aber das ist optional. Bin ja schon froh, wenn ich knapp 700 Dateien nicht von Hand suchen muss.

Ich arbeite an einem Windows-Rechner (Windows 7) und habe folgendes Script in einer Batch-Datei verwendet:

@echo off &setlocal
set "sourceRoot=C:\Users\user13\Desktop\Dateisuche-Kopieren\lager\"  
set "sourceList=C:\Users\user13\Desktop\Dateisuche-Kopieren\art-liste.txt"  
set "destFolder=C:\Users\user13\Desktop\Dateisuche-Kopieren\kopie\"  

for /f "delims=" %%i in ('dir /a:-d /b /s "%sourceRoot%\*.jpg"^|findstr /ig:"%sourceList%"') do (  
  copy "%%~i" "%destFolder%\"  
)
PAUSE 

Das war erst einmal nur ein Testverzeichnis mit wenig Daten.
Beim Ausführen kommt keine Meldung aber es werden auch keine Dateien kopiert.
Habe verschiedene Listen getestet:
1. nur Bildname (AB12345)
2. Bildname mit Endung (AB12345.jpg)
3. Variante 1+2 mit dem kompletten Pfad.

Über Hilfe wäre ich sehr dankbar.

VG

Eldebs