URL: https://www.overclockers.at/coding-stuff/batch-dateien-kopieren-und-umbenennen_232153/page_1 - zur Vollversion wechseln!
ich hab 2 ordner mit dateien. per batch will ich die dateien aus DirA nach DirB kopieren und wenn sie schon vorhanden sind umbenennen (einfach hinten ein _1 anhängen). soweit so gut...
mein problem nun: wenn es die datei_1 auch schon gibt, sollte idealerweise eine datei_2 produziert werden usw...Code: BATCH@ECHO OFF FOR /F "tokens=*" %%1 IN ('dir srcdir /b') DO ( IF EXIST destdir\%%1 (copy srcdir\%%1 destdir\%%1_1 ) ELSE (copy srcdir\%%1 destdir) )
Cygwin installieren, dann:
Code: SHELLfor file in DirA/* do target="DirB/${file##*/}" test -f "$target" && target="${target}_1" while test -f "$target" do target="${target%_*}"_"$((${target##*_} + 1))" done cp "$file" "$target" done
danke! werde ich wohl verwenden wenn ich gar nicht weiterkomme, denn eigentlich sollte ich auf der maschine nichts installieren.
inzwischen hoff ich, doch noch eine simple lösung zu finden
ich hab jetzt mal eine primitive zählschleife mit eingebaut und lass eine variable C mitlaufen, die dann zum dateinamen dazu soll:
Code: BATCH@ECHO OFF CLS FOR /F "tokens=*" %%d IN ('dir srcdir /b') DO ( echo checking %%d IF EXIST destdir\%%d ( echo %%d existiert schon SET C=1 FOR /L %%e IN (1, 1, 10) DO ( IF EXIST destdir\%%d_%%e ( echo %%d_%%e existiert auch SET /A C+=1 ) ) ECHO kopiere %%d_%C% ) ELSE ( echo %%d existiert noch nicht echo kopiere %%d ) echo. )
Code:checking file1.001 file1.001 existiert noch nicht kopiere file1.001 checking file2.001 file2.001 existiert schon kopiere file2.001_3 checking file3.001 file3.001 existiert schon file3.001_1 existiert auch kopiere file3.001_3 checking file4.001 file4.001 existiert schon file4.001_1 existiert auch file4.001_2 existiert auch kopiere file4.001_3
ok, problem und lösung gefunden...
http://de.wikibooks.org/wiki/Batch-...e_mit_Variablen
overclockers.at v4.thecommunity
© all rights reserved by overclockers.at 2000-2025