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-Key: 156444

Url: https://administrator.de/contentid/156444

Printed on: April 25, 2024 at 05:04 o'clock

Member: Skyemugen
Skyemugen Dec 06, 2010, updated at Oct 18, 2012 at 16:44:18 (UTC)
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\  
Member: bastla
bastla Dec 06, 2010 at 16:05:06 (UTC)
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
Member: Skyemugen
Skyemugen Dec 06, 2010 at 16:21:09 (UTC)
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é
Member: viking
viking Dec 07, 2010 at 08:03:31 (UTC)
Goto Top
Wieder mal Danke bastla und auch André

funktioniert excelent wie gewünscht.


Gruß viking
Member: Nightowl71
Nightowl71 Nov 30, 2014 at 10:26:54 (UTC)
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
Member: bastla
bastla Dec 02, 2014 at 18:55:50 (UTC)
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
Member: Nightowl71
Nightowl71 Dec 03, 2014 at 16:54:30 (UTC)
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
Member: Nightowl71
Nightowl71 Dec 23, 2014 at 11:41:06 (UTC)
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
Member: bastla
bastla Dec 23, 2014 updated at 12:16:24 (UTC)
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
Member: Nightowl71
Nightowl71 Dec 23, 2014 at 15:14:07 (UTC)
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
Member: Nightowl71
Nightowl71 Dec 25, 2014 at 12:31:12 (UTC)
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
Member: bastla
bastla Dec 25, 2014 at 21:01:53 (UTC)
Goto Top
Hallo Nightowl71!

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

Grüße
bastla
Member: Nightowl71
Nightowl71 Jan 26, 2015 at 02:17:11 (UTC)
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 ;)
Member: Nightowl71
Nightowl71 Jan 26, 2015 at 02:59:05 (UTC)
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
Member: bastla
bastla Jan 26, 2015 at 21:21:57 (UTC)
Goto Top
Hallo Nightowl71!

Sorry - kann Dir nicht wirklich folgen ...

Was genau funktioniert wie nicht?

Grüße
bastla
Member: Nightowl71
Nightowl71 Jan 27, 2015 at 11:20:15 (UTC)
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
Member: rum3baer
rum3baer Apr 28, 2015 at 10:07:13 (UTC)
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??
Member: bastla
bastla Apr 28, 2015 at 12:57:46 (UTC)
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
Member: rum3baer
rum3baer May 08, 2015 at 09:35:22 (UTC)
Goto Top
Vielen Dank...genau das habe ich gesucht face-smile

Grüße der rum3baer
Member: patme1
patme1 Oct 01, 2015 updated at 08:39:30 (UTC)
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
Member: patme1
patme1 Nov 27, 2015 at 13:34:57 (UTC)
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ß
Member: bastla
bastla Nov 27, 2015 at 15:24:44 (UTC)
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
Member: Eldebs
Eldebs Apr 15, 2016 at 09:26:49 (UTC)
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