Dateien aus unterordner per Batch verschieben

Achso,
ich sagte ja ich habe keine Ahnung davon ;)

Jetzt zeigt mir an dass das System den Pfad nicht finden kann, dabei stimmen die Pfade zu 100%.
 

Anhänge

  • test2.jpg
    test2.jpg
    64,6 KB · Aufrufe: 473
F:\Misc\Pics existiert auch? Eigentlich sollte es so stimmen. Zumindest wird die Batchdatei richtig aufgerufen.
 
F:\Misc\Pics existiert.
Habe eben extra nochmal nachgeschaut.
 
In den Unterordnern von G:\Programme\Miranda IM\Received Files sowie in F:\Misc\Files sind *.jpg drin.
 
Aktueller Stand:

Movemiranda2.bat=

call "F:\Misc\Misc\Batch\movemiranda.bat" "G:\Programme\Miranda IM\Received Files" "F:\Misc\Pics" *.jpg
pause

Movemiranda.bat=

@echo off
if %1!==! goto ende --- falls kein Parameter 1 angegeben wurde, wird abgebrochen
if %2!==! goto ende --- falls kein Parameter 2 angegeben wurde, wird abgebrochen

FOR /F %%i IN ('dir /ad /b %1 /S') DO copy %%i\%3 %2
:ende

Edit:
Werden die Dateien nur kopiert oder auch verschoben ? Eigentlich möchte ich sie verschieben.
 
Zuletzt bearbeitet:
Wenn Du verschieben möchtest, kann ich Dir die Batch mit Robocopy ans Herz legen. Wenn ich den Move Befehl ausprobiere, funktioniert es nicht. Diese ist nur zum kopieren, was allerdings zum Testen auch erstmal besser ist ;)

Da fällt mir jetzt auch nichts schlaues ein. Ich bekomme die Meldung zwar auch, wenn in Ordnern keine jpgs drinne sind, allerdings kopiert er trotzdem aus den Ordnern, in denen welche drinne sind.

D:\Users\florian.brenner\AppData\Local\Adobe\Updater5\Install\AdobeUpdater\AdobeUpdater\*.jpg
The system cannot find the file specified.
0 file(s) copied.
D:\Users\florian.brenner\AppData\Local\Adobe\Updater6\Install\*.jpg
The system cannot find the file specified.
0 file(s) copied.
The system cannot find the path specified.
The system cannot find the path specified.
The system cannot find the path specified.
D:\Users\florian.brenner\AppData\Roaming\Teleca\DM\DEVREP\*.jpg
The system cannot find the file specified.
0 file(s) copied.
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1919.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1920.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1921.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1922.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1923.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1924.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1925.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1926.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1927.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1928.JPG
D:\Users\florian.brenner\Desktop\2008-07-05\DSCN1929.JPG
10 file(s) copied.
 

Anhänge

Zuletzt bearbeitet:
Die Robocopy.exe leg ich wo ab ? Im system32 ordner ?
 
Ja, das ist am sinnvollsten. Dann brauchst Du sie nicht mit dem kompletten Pfadnamen starten.

@echo off
if %1!==! goto ende --- falls kein Parameter 1 angegeben wurde, wird abgebrochen
if %2!==! goto ende --- falls kein Parameter 2 angegeben wurde, wird abgebrochen
if %3!==! goto ende --- falls kein Parameter 3 angegeben wurde, wird abgebrochen

FOR /F %%i IN ('dir /ad /b %1 /S') DO robocopy %%i %3 %2 /mov /NJS /XJ

:ende

Echo.

Pause
 
Danke dass du so geduldig bist ;)

Das Problem ist nun dass er nicht G:\Programme\Miranda IM\ sondern nur G:\Programme\Miranda\ nimmt.

Obwohl ich das alles in " gesetzt habe:

call "F:\Misc\Misc\Batch\movemiranda.bat" "G:\Programme\Miranda IM\Received Files" "F:\Misc\Pics" *.jpg
pause
 

Anhänge

  • test3.jpg
    test3.jpg
    70,7 KB · Aufrufe: 368
Da bin ich jetzt auch überfragt, warum die "" ignoriert werden. Ich probiere mal ein bischen...

Ich habs:

@echo off
if %1!==! goto ende --- falls kein Parameter 1 angegeben wurde, wird abgebrochen
if %2!==! goto ende --- falls kein Parameter 2 angegeben wurde, wird abgebrochen
if %3!==! goto ende --- falls kein Parameter 3 angegeben wurde, wird abgebrochen

FOR /D %%i IN (%1) DO (SET ShortFileOrDirName=%%~fsi)
FOR /F %%i IN ('dir /ad /b %ShortFileOrDirName% /S') DO robocopy %%i %3 %2 /NJS /XJ /MOV

:ende

Echo.

Pause
 
Zuletzt bearbeitet von einem Moderator: (Beiträge zusammengeführt.)
Du bist ein Gott, danke ! :)
 
oh god ;)

For /F "Tokens=*" %%i in ('Dir /B /S "G:\Programme\Miranda IM\Received Files\*.jpg"') do Move /Y "%%~fi" "F:\Misc\Pics"

Verschiebt von einem Verzeichnis inkls. Unterordner alle *.jpg in ein einzelnes Verzeichnis. Aber auch die Call Lösung ist natürlich genauso nett.
 
Zuletzt bearbeitet:
@frogger
Das ist ja noch besser!

Hier Deine Lösung als allgemeine Batch:

@echo off
if %1!==! goto ende --- falls kein Parameter 1 angegeben wurde, wird abgebrochen
if %2!==! goto ende --- falls kein Parameter 2 angegeben wurde, wird abgebrochen
if %3!==! goto ende --- falls kein Parameter 3 angegeben wurde, wird abgebrochen

For /F "Tokens=*" %%i in ('Dir /B /S %1\%3') do Move /Y "%%~fi" %2

:ende

Echo.

Pause
 
Zurück
Oben