Batch zum auslesen vom Ordner

daviid88

Newbie
Registriert
Juni 2014
Beiträge
3
Hallo
wollte einen Batch schreiben. Dabei soll ein Ordner1 ausgelesen werden. Findet der Batch eine Datei in dem Ordner1 soll diese Datei umbenannt werden und in einem anderen Ordner2 abgespeichert werden. Falls in dem Ordner1 nichts befindet, kann der Batch geschlossen werden. Leider komme ich nicht weiter... Habe folgendes schon erstellt, aber es funktioniert nicht:

echo on

REM Parameter durch Leerzeicehn getrennt
REM 1. Quell Verzeichnis (Den kompletten Pad angeben)
REM 2. Zielverzeichnis (Den kompletten Pad angeben)
REM 3. Neuer Dateiname



REM Ouellordner prüfen
cd %1
FOR %%A IN ("*.*") DO (

if exist %A% goto DateiGefunden else goto Ende
)

:DateiGefunden
REM Zielordner prüfen

pause
cd %2
FOR %%B IN ("*.*") DO (

if exist %B% goto Ende

)

move %1\%%A %2\%3
pause


:Ende


Vielen Dank für die Hilfe
 
Moin,

du hast viel zu kompliziert gedacht. :)

PHP:
FOR %%A IN (%1\*) DO move %%A %2

Dies verschiebt alle Dateien im ersten Verzeichnis in das Zweite. Solltest du noch umbennen wollen, dann würde ich eine zweite FOR davor schieben, die das übernimmt. Umbennen kann man zwar auch während des move-Befehls, da in %A aber der gesamte Pfad steht ist das nicht so einfach.

Hoffe, das hilft dir
 
ich merke, dass ich mich wieder nicht richtig ausgedrückt habe :D
es soll in einem Ordner_1 nach einer Datei mit einer bestimmten Endung gesucht werden.
In Ordner_2 wird diese Datei dann umbenannt verschoben. Jedoch soll in Ordner_2 nur eine Datei mit der Endung sein. Erst wenn die Datei aus Ordner_2 verschwindet, kann in Ordner_1 wieder gesucht werden.
Am Besten wäre es noch, wenn eine Sicherheitskopie in einem anderen Ordner_3 von der Datei aus Order_1 erstellt wird.
Ich hoffe, dass es jetzt etwas verständlicher ist...
 
Ok, viel deutlicher ist es mir jetzt auch nicht geworden =D

Beispiele wären nicht schlecht.
Aber mal Schritt für Schritt: wenn du bei (%1\*.txt) schreibst wird nur nach Dateien der Endung txt gesucht.
Wenn du noch vorher abfragen willst, ob die Datei bereits vorhanden ist, kannst du nach dem do Klammern setzen und dann ein if not exist folgen lassen.
Aber wie gesagt, das mit dem Umbenennen ist blöde, weil in %A immer der komplette Pfad + Dateiname + Endung steht.
Sicherheitskopie ist kein Problem, da kannst du vorher noch ein einfaches copy stecken.

Da musst du mal ein bisschen probieren.

Aber ernsthaft: Wenn es da um etwas wichtiges geht, würde ich mich nicht auf ein batch verlassen. Die Dinger sind weder die günstige Möglichkeit etwas dauerhaft auszuführen noch kann man sonderlich viel Intelligenz einbauen. In diesem Fall würde ich eher mit einer richtigen Programmiersprache arbeiten. Oder um klein anzufangen mit VBA arbeiten.
 
Danke schon mal.Damit funkioniert es jetzt. Das Problem ist, es darf nur eine Datei aus Ordner 1 kopiert werden bzw. ausgesucht werden.

IF NOT EXIST d:\Ordner2\*.csv move /-Y d:\Ordner1\*.csv d:\Ordner2\fertig.csv
 
Zuletzt bearbeitet:
Zurück
Oben