chrism73
Goto Top

Dateien wegsichern und umbennennen

Hallo ich habe einen Ordner mit 5915 Verzeichnissen. In jedem dieser Verzeichnisse gibt es einen Ordner namens 200. Darin befindet sich eine *.tif Datei.
Diese *.Tif soll mit laufender Nummer wegkopiert werden. So dass ich danach im Verzeichnis 1.tif , 2.tif, 3.tif stehen habe???

wie kann ich das machen?

so sieht die Ordnerstruktur aus:
1363dd2445889afaab217330d01c7585-ordnerstruktur

Content-ID: 97692

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

Ausgedruckt am: 22.11.2024 um 21:11 Uhr

Farbauti
Farbauti 24.09.2008 um 10:46:08 Uhr
Goto Top
Hallo,

a) heißt die TIF Datei in jedem Verzeichnis 1.tif, also muss umbenannt werden oder sind die Datei-Namen schon eindeutig?
b) suchst du ein Skript (zum immer wieder ausführen) oder nur eine einmalige Aktion?
Im letzteren Fall nutze einfach die Windowssuche (nach .tif), markiere alle Treffer (Strg+A) und kopiere die in dein Zielverzeichnis.

Gruß, Farbauti.
miniversum
miniversum 24.09.2008 um 10:57:24 Uhr
Goto Top
Ungetestet würd ichs mal so versuchen:
@echo off
set "quelle="C:\Rücksicherung 6000 Faxe"  
set "ziel=C:\Alle Faxe"  
set nr=0
FOR /F "delims=" %%i in ('dir /B /S "%quelle%\*.tif"') do goto:copyit "%%~i"  
goto:eof

:copyit
set /a nr=%nr%+1
if not exist "%ziel%\%nr%.tif" (  
copy "%~1" "%ziel%\%nr%.tif"  
goto:eof
) else (
goto:copyit
)
ChrisM73
ChrisM73 24.09.2008 um 11:05:29 Uhr
Goto Top
a)die heissen alle 1.tif
b)geht ja in dem Fall leider nicht...
ChrisM73
ChrisM73 24.09.2008 um 11:19:17 Uhr
Goto Top
Hallo Miniversum,
danke erstmal, wenn ichs ausführ sagt er mir:
ausgabe vom Programm: "else" ist syntaktisch an dieser stelle nicht verarbeitbar.

habe leider festgestellt das es in manchen Verzeichnissen auch 2. tif, 3.tif, 4.tif gibt, die sollten auch kopiert werden...
miniversum
miniversum 24.09.2008 um 11:33:27 Uhr
Goto Top
Bei dieser Batch werden alle tifs, egal wie sie heißen, aufgesammelt und kopiert.
@echo off
set "quelle="C:\Rücksicherung 6000 Faxe"  
set "ziel=C:\Alle Faxe"  
set nr=0
FOR /F "delims=" %%i in ('dir /B /S "%quelle%\*.tif"') do goto:copyit "%%~i"  
goto:eof

:copyit
set "file=%~1"  
:nrup
set /a nr+=1
if exist "%ziel%\%nr%.tif" goto:nrup  
if not exist "%ziel%\%nr%.tif" copy "%file%" "%ziel%\%nr%.tif"  
goto:eof
ChrisM73
ChrisM73 24.09.2008 um 11:50:37 Uhr
Goto Top
hm jetzt führt er es zwar kurz aus, ohne Fehlermeldung, macht aber leider gar nix...
miniversum
miniversum 24.09.2008 um 13:44:48 Uhr
Goto Top
Da war ich jetzt unaufmerksam. Ändere mal in Zeile 5 das
goto:copyit "%%~i"
in
call:copyit "%%~i"
ChrisM73
ChrisM73 24.09.2008 um 13:47:26 Uhr
Goto Top
hm leider das selbe Ergebnis...
miniversum
miniversum 24.09.2008 um 13:56:23 Uhr
Goto Top
Ich habs gerade bei mir so getestet:
@echo off
set "quelle=C:\Rücksicherung 6000 Faxe"  
set "ziel=C:\Alle Faxe"  
set nr=0
FOR /F "delims=" %%i in ('dir /B /S "%quelle%\*.tif"') do call:copyit "%%~i"  
goto:eof

:copyit
set "file=%~1"  
:nrup
set /a nr+=1
if exist "%ziel%\%nr%.tif" goto:nrup  
if not exist "%ziel%\%nr%.tif" copy "%file%" "%ziel%\%nr%.tif"  
goto:eof
Und es geht so bei mir.

Zu testzwecken kannst dus ja mal so versuchen:
@echo off
set "quelle=C:\Rücksicherung 6000 Faxe"  
set "ziel=C:\Alle Faxe"  
set nr=0
FOR /F "delims=" %%i in ('dir /B /S "%quelle%\*.tif"') do call:copyit "%%~i"  
goto:eof

:copyit
set "file=%~1"  
echo Verarbeite "%file%"  
:nrup
set /a nr+=1
echo Existiert "%ziel%\%nr%.tif" ?  
if exist "%ziel%\%nr%.tif" (  
echo Ja
goto:nrup
)
if not exist "%ziel%\%nr%.tif" (  
echo Nein, Datei wird kopiert und in "%nr%.tif" umbenannt.  
copy "%file%" "%ziel%\%nr%.tif"  
)
pause
goto:eof
Hier sollten Meldungen kommen was gemacht wird. Nach jeder Datei die verarbeitet wurde kommt eine Pause inder du kontrollieren kannst wo der Fehler liegt.
ChrisM73
ChrisM73 24.09.2008 um 14:04:56 Uhr
Goto Top
die funzen beide nicht, beim 2ten sagt er Syntaxfehler wenn ichs in ner dosbox aufrufe...
hab nur bei mir die Pfade auf E: gelegt, aber das sollte ja keine Rolle spielen oder?
miniversum
miniversum 24.09.2008 um 14:16:33 Uhr
Goto Top
Die Pfadangabe sollte egal sein.
Ändere mal das echo off in echo on. Dann solltest du sehen was er macht und wo genau es hängt
ChrisM73
ChrisM73 24.09.2008 um 14:24:38 Uhr
Goto Top
hey super. jetzt klappt es, in Zeile 2 war ein " zuviel und mit dem ü in Rücksicherung hat er wohl Probleme gehabt. Vielen, vielen Dank.
miniversum
miniversum 24.09.2008 um 14:37:19 Uhr
Goto Top
Achja jetzt sehe ich das " zuviel auch. Das ändere ich oben im Code noch.
Das mit dem ü kannst du umgehen indem du nach dem echo off folgende zeile noch einbaust:
chcp 1252 >NUL