saschi6
Goto Top

Batchdatei erstellen file 2 folder für win 7

Hallo an die Experten hier

Hallo an die Experten hier,

kann mir evtl jemand helfen ich versuche verzweifelt einen batch zu schreiben
um mir das erstellen von verzeichnissen und verschieben der Dateien zu ersparen.

habe sehr viele Bilder die kunterbunt in verzeichnissen liegen haben zwar alle einen
namen habe hier aber nie verzeichnisse angelegt. so wei so gut.

die Dateien sehen ungefär vom namen so aus. 1234567 1234567-bliblablub-blablab-bla-bla.jpg
die xxxxx ist das wo raus sich nachher das verzeichniss erstellen soll der rest ist egal
das soll heisen diese batch soll in dem verzeichniss der bilder ausgeführt werden dann
alle bildernamen zu verzeichnissen wandeln und dann da rein kopiert werden, beispiel
10000 bilder mit teilweisen gleichem anfang vobei die länge zum ersten trennzeichen
verschieden ist.

alter hase-123-fght-dsjurr.jpg
alter hase-123-fght-dsju.jpg
erstellter ordner (alter hase) und da sollen sich die dateien auch rein Kopieren

grünbaum berg-123-fght-dsj.jpg
grünbaum berg-23-fght-dsjurr.jpg
(grünbaum berg)

neuer hase-13-fght-dsjurr.jpg
neuer hase-13-fght-urr.jpg
(neuer hase)

gelbes Autodach-123-fg-dsjurr.jpg
gelbes Autodach-fght-dsjurr.jpg
(gelbes Autodach)

Autobahn-3-fgt-dsjurr.jpg
(Autobahn)

Fenster-1-fght-dr.jpg
(Fenster)

USW das soll zeigen das das was vor dem ersten - steht soll der Verzeichnissname werden und alle
Dateien die bis zum ersten - gleich sind auch dann da drinn stehen.

ich hoffe mann versteht wie ich das meine

folgendes habe ich mir schon zusammen gebastelt was auch zum teil funktioniert
aber ich kriege nicht hin das er die verzeichnisse so benennt wie vor dem ersten -
könnt Ihr mir da etwas unter die Arme greifen ????


@echo off & setlocal
set "Basis=D:\Das Verzeichnis"

pushd "%Basis%"

For /F "Tokens=1 Delims=*" %%i IN ('Dir /B /A-D') do Call :ProcessFile "%%~i"

popd
goto :eof

:ProcessFile
set "Datei=%~1"
set "Verz=%Datei:~,18%" (Das habe ich gemacht das er einen teil zum VZ anlegt und die gleichen da hinein Copiert)
if not exist "%Verz%" md "%Verz%"
copy "%Datei%" "%Verz%"
goto :eof

hoffe bald auf Antwort bin am Verzweifeln

gruß Saschi

Content-Key: 187644

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

Printed on: April 16, 2024 at 06:04 o'clock

Member: bastla
bastla Jul 08, 2012 at 22:25:42 (UTC)
Goto Top
Hallo Saschi6 und willkommen im Forum!

Sollte (ungetestet) etwa so gehen:
@echo off & setlocal
set "Basis=D:\Das Verzeichnis"  

pushd "%Basis%"  
for /f "delims=" %%i in ('dir /b/a-d *.jpg') do (  
    for /f "delims=-" %%a in ("%%i") do (  
        md "%%a" 2>nul  
        copy "%%i" "%%a">nul  
    )
)
popd
Grüße
bastla
Member: Saschi6
Saschi6 Jul 09, 2012 at 14:41:44 (UTC)
Goto Top
Hallo bastla,

SUPER genau was ich brauchte
weis zwar nicht genau wo mein fehler lag aber BESTEN Dank
an dich super Arbeit.

somit ist meine Frage Total beantwortet

gruß Saschi