sebbso
Goto Top

Dateien verschieben in Ordner mit Nummer

Ich suche oder benötige Tipps zum erstellen einer batch oä. um Dateien automatisch zu verschieben

Mein problem:

eine datei namens "c:\aaa\jpg\s_xxxx_zz_beliebiges datum.jpg" soll in ordner c:\aaa\bbb\yyyy und c:\aaa\ccc\yyyy kopiert werden. wobei im dateinamen xxxx eine zahl darstellt von 0-5000, zz Buchstaben sind und der ordener yyyy ein ordner in 100 schritten ist, also 0001-0099, 0100-0199. und so weiter...

eine überprüfung auf vorhandensein der datei ist nötig, die datei soll dann nicht verschoben werden. der ordner existieren schon, bzw sollten neu angelegt werden wenn er nicht existiert. gibt es dafür eine lösung mit wenig aufwand so wie eine batch?

irgendwas mit for / if müsste da doch gehen, wen ich nen zähler im dateinamen laufenlasse und mit copy verschiebe...

mfg sebbso

Content-Key: 148847

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

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

Member: Biber
Biber Aug 12, 2010 at 09:40:26 (UTC)
Goto Top
Moin sebbso,

willkommen im Forum.
Ich kann es mir nicht nicht vorstellen, dass irgendjemand für dein vergleichsweise exotisches Nischenproblem mal prophylaktisch in einer regnerischen Novemberwoche aus Jux eine Freeware erfunden hat und seitdem sehnsüchtig auf dich als ersten Anwender wartet.

Oder etwas kürzer ausgedrückt: Ich glaube nicht, dass deine Frage hier im Bereich "Tools & Utilities" gelöst werden wird.

Mein Tipp:
Verschiebe den Beitrag nach "Batch & Shell" im Bereich "Entwicklung". Die Mädels da sind eigentlich ganz nett.

Allerdings solltest du denen signalisieren, dass du versucht hast, dich mit dem Problemchen auseinanderzusetzen und beispielsweise eine Versuchszeile mit FOR /F als Ansatz mitliefern.

Wenn du da versuchst, dich mit dem Satz "ich bin nicht mehr so bewandert in sachen programmieren. aus der aktiven Lösungsfindung rauszudrehen, dann gibt es wieder gewisse Randbemerkungen..

Grüße
Biber
Member: sebbso
sebbso Aug 12, 2010 at 10:28:31 (UTC)
Goto Top
Danke für den Tipp, habe das Forum nun gefunden und frage da mal nach
Member: pieh-ejdsch
pieh-ejdsch Aug 12, 2010 at 13:27:21 (UTC)
Goto Top
moin sebbso,

wenn Du Deinen 1. Ordner nicht "0001-0099" sondern "0000-0099" nennst dann...

versuchs mal damit ungetestet
@echo off&setloacal
set OriginalVerzeichnis="C:\aaa\jpg"  
set "Kopie1VZ=C:\aaa\bbb"  
set "Kopie2VZ=C:\aaa\ccc"  
pushD %OriginalVerzeichnis%
for %%a in ("?_????_*.jpg") do (set "File=%%~a"  
	for /f "tokens=2 delims=_" %%b in ("%%~a") do for /f "delims=0 tokens=*" %%c in ("%%~b") do (set /a Nr=%%c/100+100,Zahl=%%c+10000  
		setlocal enabledelayedexpansion
		if not exist "%Kopie1VZ%\!Nr:~1!00-!Nr:~1!99\" md "%Kopie1VZ%\!Nr:~1!00-!Nr:~1!99\"  
		if not exist "%Kopie1VZ%\!Nr:~1!00-!Nr:~1!99\!File!" copy "!File!" "%Kopie1VZ%\!Nr:~1!00-!Nr:~1!99\"  
		if not exist "%Kopie2VZ%\!Nr:~1!00-!Nr:~1!99\" md "%Kopie2VZ%\!Nr:~1!00-!Nr:~1!99\"  
		if not exist "%Kopie2VZ%\!Nr:~1!00-!Nr:~1!99\!File!" copy "!File!" "%Kopie2VZ%\!Nr:~1!00-!Nr:~1!99\"  
		endlocal
	)
)
popD

Gruß Phil