nordisch

Batch zum Umbennen von Daten

Hi,

ich möchte einen Batch erstellen der unter Windows 2000/XP läuft, welcher einen Ordner erstellt (aus Datum und "Titel"), Fotos von einer DigiCam/Netzlaufwerk in diesen Ordner kopiert und die Dateien dann umbennent (pic_"Titel_des_Ordners"_00xx").
Es funktioniert alles bis auf das umbennen der Daten. Bitte um Hilfe/Tipps face-smile


Mein Batch sieht bis jetzt wie folgt aus:

@echo Geben Sie bitte einen Titel fuer das Fotoalbum ein!
@echo off

CD\

set /P NAME=
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set ordner="%jahr%-%monat%-%tag% (%NAME%)"
md %ordner%
cd %ordner%

echo %CD%

xcopy K:\*.jpg


gruss nordisch
Auf Facebook teilen
Auf X (Twitter) teilen
Auf Reddit teilen
Auf Linkedin teilen
Kommentar vom Moderator Biber am 07.08.2009 um 20:55:34 Uhr
Batch zum Umbennen von Daten
...
in diesen Ordner kopiert und die Dateien dann umbennent
Womit belegt ist, dass es Anno 2006 wohl noch keine Code-Tags gab, aber umbannt haben die Menschen damals auch schon.

Content-ID: 39654

Url: https://administrator.de/forum/batch-zum-umbennen-von-daten-39654.html

Ausgedruckt am: 07.07.2025 um 01:07 Uhr

dariusausberlin
dariusausberlin 12.09.2006 um 13:54:10 Uhr
hallo nordisch....
wenn du die Pfade auf deine Verhältnisse anpasst,
könnt es klappen.
IMHO sollte der Zielpfad auf ein konkretes selbstbestimmtes "Root" verweisen,
sonst landet ja alles im User-Ordner...


rem d:\001 Pfad des Programms
rem d:\002 Quellpfad der Bilder
rem d:\003 Zielpfad der Bilder

echo J|del d:\001\liste.txt
echo J|del d:\001\liste1.txt

@echo Geben Sie bitte einen Titel fuer das Fotoalbum ein!
set /P NAME=
set jahr=%date:~-4%
set monat=%date:~-7,2%
set tag=%date:~-10,2%
set ordner="%jahr%-%monat%-%tag% (%NAME%)"

d:
cd\
cd d:\003

md %ordner%
cd %ordner%

echo Pfad der Fotos: d:\002 -- also das Kameraverzeichnis
echo wäre für den Dir-befehl anzupassen

d:
cd \
cd d:\001

dir /B d:\002\*.jpg > d:\001\liste.txt
findstr /N "jpg" d:\001\liste.txt > d:\001\liste1.txt

d:
cd \
cd d:\001
for /F "tokens=1,2 delims=:" %%i in (liste1.txt) do echo J|copy d:\002\%%j d:\003\%ordner%\pic_%ordner%_%%i.jpg

cd ..
dariusausberlin
dariusausberlin 13.09.2006 um 12:04:10 Uhr
hallo nordisch

noch eine kleine Ergänzung...
for /F "tokens=1,2 delims=:" %%i in (liste1.txt) do (
if %%i LEQ 9 echo J|copy d:\002\%%j d:\003\%ordner%\pic_%ordner%_000%%i.jpg
if %%i GTR 9 echo J|copy d:\002\%%j d:\003\%ordner%\pic_%ordner%_00%%i.jpg
)

nach deiner Vorgabe sollten es ja max 99 Dateien sein

(das im vorigen Kommentar auftauchende cdcd liegt an der
Nichtdarstellung des Backslashes - sorry)

darius
nordisch
nordisch 14.09.2006 um 11:39:08 Uhr
hi darius,

erstmal vielen dank face-smile
leider funktioniert es noch nicht ganz.
der neue Ordner (zB 2006-09-14 (Test)) wird im Ordner 003 erstellt, jedoch ohne Inhalt. In der liste.txt werden alle Dateien gelistet (Testdaten: "P0004169.JPG" - sollte wenn möglich flexibel sein, da die Dateien auch anders heissen können).
Und max. Dateien sollten 999 sein.

Dann ist mir aufgefallen das 3x "cd cd" in dem batch vorkommt - da gabs fehlermeldungen. ich habe dann jeweils ein "cd" entfernt.

nordisch
dariusausberlin
dariusausberlin 14.09.2006 um 12:59:32 Uhr
hallo nordisch

die doppelten cd's kommen einfach vom
Reinkopieren
eigentlich stand in der Zeile zuvor "cd \"
um einen Wechsel in ein definiertes
Verzeichnis zu bewirken.
-- hatte mir leider nicht die Vorschau angesehen

-- sorry !!

Darius

(der Copy sollte aber klappen)
dariusausberlin
dariusausberlin 14.09.2006 um 13:14:48 Uhr
Hallöchen nordisch

hab nochmal ein wenig mit der For-Schleife gebastelt
sollte so auch dreistellig klappen (du willst ja die Bilder bestimmt
in der gleichen Reihenfolge haben)
probier mal -
Pfade könnte man ja auch in Variablen gießen

Darius

d:
cd \\

cd d:\001
for /F "tokens=1,2 delims=:" %%i in (liste1.txt) do (
if %%i LEQ 9 echo J|copy d:\002\%%j d:\003\%ordner%\pic_%ordner%_000%%i.jpg
if %%i GTR 9 (
if %%i LEQ 99 echo J|copy d:\002\%%j d:\003\%ordner%\pic_%ordner%_00%%i.jpg
)
if %%i GTR 99 echo J|copy d:\002\%%j d:\003\%ordner%\pic_%ordner%_0%%i.jpg
)
cd ..
nordisch
nordisch 14.09.2006 um 15:10:09 Uhr
hi darius

jetzt läuft der batch face-smile

ich musste allerdings noch den Part >>findstr /N "jpg"<< in >>findstr /N "JPG"<< ändern da die endung auf der kamera groß geschrieben ist.

hab vielen dank


gruss nordisch
dariusausberlin
dariusausberlin 14.09.2006 um 15:29:26 Uhr
Hi nordisch

freut mich geholfen zu haben

gerne wieder

Darius