nordisch
Goto Top

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
Kommentar vom Moderator Biber am Aug 07, 2009 um 18: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-Key: 39654

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

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

Member: dariusausberlin
dariusausberlin Sep 12, 2006 at 11:54:10 (UTC)
Goto Top
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 ..
Member: dariusausberlin
dariusausberlin Sep 13, 2006 at 10:04:10 (UTC)
Goto Top
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
Member: nordisch
nordisch Sep 14, 2006 at 09:39:08 (UTC)
Goto Top
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
Member: dariusausberlin
dariusausberlin Sep 14, 2006 at 10:59:32 (UTC)
Goto Top
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)
Member: dariusausberlin
dariusausberlin Sep 14, 2006 at 11:14:48 (UTC)
Goto Top
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 ..
Member: nordisch
nordisch Sep 14, 2006 at 13:10:09 (UTC)
Goto Top
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
Member: dariusausberlin
dariusausberlin Sep 14, 2006 at 13:29:26 (UTC)
Goto Top
Hi nordisch

freut mich geholfen zu haben

gerne wieder

Darius