thebasat
Goto Top

Batch Automatisierung: einzelne Dateien verschieben

Ich bin gerade dabei, eine etwas größere Batch-Automatisierung zu erstellen und es hackt nur noch am letzten Punkt.

Ich möchte Dateien aus einem Verzeichnis in ein anderes Verzeichnis verschieben. Kling somit eigentlich easy, aber das Problem ist, die Dateien haben immer eine unterschiedliche Bezeichung (xxx.psd) aber den selben Dateityp.

Ist es möglich, dass man nur vereinzelt Dateien verschieben kann? z.B.: Datei 001.psd aus dem Verzeichnis A soll in Verzeichnis B und dann erst soll die datei 002.psd aus Verzeichnis A in Verzeichnis B, usw....

Vielen Dank schonmal im Voraus!

Content-Key: 215857

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

Printed on: April 19, 2024 at 04:04 o'clock

Member: MartinBinder
MartinBinder Sep 02, 2013 at 12:08:37 (UTC)
Goto Top
forfiles oder for helfen Dir vmtl... Ich versteh auch nicht genau, was Du mit "erst 001.psd, dann 002.psd" meinst.
Member: TheBasat
TheBasat Sep 02, 2013 at 12:16:30 (UTC)
Goto Top
zurzeit muss ich immer ein Bild aus dem Verzeichnis in den gewünschten Ordner kopieren und kann dann erst meine .bat ausführen.
Den letzten Schritt, den ich jetzt noch automatisieren wollte ist, dass die Batch sich die Dateien selber aus dem gewünschten Verzeichnis nimmtund dann die Bearbeitung des Bildes vornimmt (die ja schon fertig programmiert wurde ) und sich erst danach das nächste Bild aus dem Verzeichnis holt.

Ich hoffe jetzt ists ein bisschen verständlicher...oder?
Member: MartinBinder
MartinBinder Sep 02, 2013 at 12:19:10 (UTC)
Goto Top
Ja, ok. Die "Ähnliche Inhalte"-Treffer hast Du Dir angeschaut?
Member: TheBasat
TheBasat Sep 02, 2013 at 13:03:19 (UTC)
Goto Top
Ja haben ich schon, aber bringen mir so direkt noch nicht die Erleuchtung....
Member: Endoro
Endoro Sep 02, 2013 at 22:45:49 (UTC)
Goto Top
Hi,
wie soll die zu verschiebende Datei denn identifiziert werden?
Die älteste, erste, kleinste oder zufällig?
lg.
Member: TheBasat
TheBasat Sep 03, 2013 at 06:18:14 (UTC)
Goto Top
Also am liebsten wäre mir immer die erste Datei! Weil mache Dateien in der selben Minute erstellt wurden, die selbe größe haben und die gleichen Typ und somit schlecht zum identifizieren sind...

Ich hab mal was von einer Liste gehört! Das man erst alle Dateien aus einem Ordner ausliest, die als Liste erstellt und dann daraus die Daten einzel verschieben kann....

Zufällig wäre auch noch eine Option, hauptsache ist nur, dass alle Dateien nacheinander in den anderen Ordner überwanden.. face-smile

lg danke!
Member: MartinBinder
MartinBinder Sep 03, 2013 at 07:51:26 (UTC)
Goto Top
forfiles /?
Member: TheBasat
TheBasat Sep 03, 2013 at 14:26:32 (UTC)
Goto Top
Ja genau! face-smile

Mit
FORFILES /P "<Dateipfad>" /M "*.psd"

kann ich jetzt schonmal die gewünschten Dateien anzeigen lassen.

Wie kann ich jetzt mit den Parametern die erste aufwählen und mit meinem Befehl in den richten Ordner kopieren?
Member: Endoro
Endoro Sep 03, 2013 at 14:28:19 (UTC)
Goto Top
Hi,
also mal ein Beispiel:
set "startfolder=c:\pictures"  
set "targetfolder=c:\temp"  
cd /d "%startfolder%"  
for %%a in (*.psd) do (
    if not defined first echo move "%%~a" "%targetfolder%"  
    set "first=true"  
)
lg
Member: MartinBinder
MartinBinder Sep 03, 2013 at 14:51:23 (UTC)
Goto Top
forfiles /p "<dateipfad" /j "*.psd" /c "cmd /c move @File <zielpfad> & call xyz.bat @fname.@ext"
In xyz.bat machst Du "was auch immer", und den aktuellen Dateinamen hast Du in dem Batch dann in %1 stehen.
Member: pieh-ejdsch
pieh-ejdsch Sep 03, 2013 updated at 16:18:56 (UTC)
Goto Top
moin,

die Lösung gab es hier auch schon: Begrenzte Anzahl von Dateien verschieben das passiert dann auch schön nacheinander. Dieser Batch übergibt bei jeder Ausführung die Angegebene Anzahl von Dateien ins andere Verzeichnis.

Die Forschleife/Dir/Forfiles nimmt/nehmen immer zuerst das neueste File, daher ist unbedingt mit einer Liste zu arbeiten. Man könnte auch nach ältester Datei sortieren um dies zu umgehen - aber ständig neue sortierregeln? Nö.

Der nächste Schritt der Automatisierung ist ein call in das Externe Programm und weiter mit verschieben fortzufahren usw.... bis nix mehr da ist.

Gruß Phil
Member: TheBasat
TheBasat Sep 04, 2013 at 10:08:24 (UTC)
Goto Top
Also mit:


@echo OFF

mode con lines=50 cols=100

set PWD=%~dp0
cd %PWD%


forfiles /p "Quelldateipfad" /M "*.psd" /c "cmd /c move @File <cd %PWD%>"

kann ich alle gewünschten PSD-Dateien aus dem Ordner in den richtigen Ordner schieben!

Wie wähle ich jetzt immer nur eine aus? Zum Beispiel nur die erste Datei? Mit welchem Parameter kann ich das bestimmen und wie?
Member: MartinBinder
MartinBinder Sep 04, 2013 at 10:23:23 (UTC)
Goto Top
Was willst Du denn auswählen??? Was ist die "erste" Datei???

forfiles führt den Befehl hinter /c für jede Datei im Quellpfad einzeln aus, das sollte doch Deine Frage beantworten...
Member: TheBasat
TheBasat Sep 04, 2013 at 10:54:45 (UTC)
Goto Top
"forfiles führt den Befehl hinter /c für jede Datei im Quellpfad einzeln aus, das sollte doch Deine Frage beantworten...!"

-> in dem Quellpfad ca. 100 Dateien, aber ich will mit dem Befehl immer nur die oberste Datei in das Zielverzeichnis kopieren!

D.h. nicht alle auf einmal sondern eine nach der anderen..


Danke!
Member: MartinBinder
MartinBinder Sep 04, 2013 at 11:16:34 (UTC)
Goto Top
Was ist für Dich "die oberste Datei"? Und was meinst Du mit "eine nach der anderen" - genau das macht forfiles...
Member: TheBasat
TheBasat Sep 04, 2013 at 11:32:08 (UTC)
Goto Top
Also Datei 001 von 100 soll vom Ordner A in den Ordner B Kopiert werden.
Dann wird eine Exe ausgeführt die mit der Datei 001 arbeit und danach löscht.

Erst jetzt soll die .Bat Datei die 002 von 100 vom Ordner A in den Ordner B kopieren.

Wie als würde man eine Pause einbauen nach jeder einzelnen Datei....


Weil jetzt werden alle Dateien 001, 002, 003 - 100 zwar nacheinander, aber trotzdem auf einmal vom Ordner A in den Ordner B kopiert.... ;) verstanden?
Member: Endoro
Endoro Sep 04, 2013 at 12:19:08 (UTC)
Goto Top
Hi,
manche Threads verstehe ich nicht face-sad
Ich komm mir jetzt schon wie ein aufdringlicher Spammer vor.
Dabei habe ich oben den passenden Code bereits geschrieben, der exact eine Datei verschiebt.
forfiles ist völlig ungeeignet weil das wie der Name schon sagt einen Befehl auf viele Dateien anwendet.
Wenn du mit deinem Thread nicht zurechtkommst, stelle deine Fragen besser hier !
lg.
Member: pieh-ejdsch
pieh-ejdsch Sep 04, 2013 updated at 16:39:08 (UTC)
Goto Top
moin TheBasat,

es gab jetzt schon einige Vorschläge zur Lösung Deiner einzelnen Dateiverschiebung mit anschließender Bearbeitung eines unbekannten Programmes was auch nach der Bearbeitung die Dateien löscht (was erst nach einiger Zeit hier im Thread mal erwähnt wurde).
Wenn Du noch ein paar Informationen über das Programm loswürdest, wie:
Schließt sich das Programm nachher von selbst, dauert die Bearbeitung eine mindestZeitspanne oder ...
hättest Du eventuell schon was Produktives hier oder weiter unten stehen.

Es ist manchmal schwer Fragen zu stellen wenn die Probleme damit n9icht zusammenhängen.
@Endoro meintest Du aus der Nase ziehen...?

Gruß Phil
Member: MartinBinder
MartinBinder Sep 05, 2013 at 06:53:56 (UTC)
Goto Top
manche Threads verstehe ich nicht face-sad

Ich auch nicht face-smile

forfiles ist völlig ungeeignet weil das wie der Name schon sagt einen Befehl auf viele Dateien anwendet.

Der Befehl kann ja auch ein Batchfile sein... Aber egal, der TO scheint uns ohnehin nicht folgen zu können face-wink
Member: TheBasat
TheBasat Sep 05, 2013 at 08:21:36 (UTC)
Goto Top
Nach langen probieren hats geklappt!
@ Endoro mit deinem Skript hats funktioniertface-smile
@ ALL Danke für die Geduld und entschuldigung für blöd bestellte Frage! face-smile

lg TheBasat