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-Key: 97692

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

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

Member: Farbauti
Farbauti Sep 24, 2008 at 08:46:08 (UTC)
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.
Member: miniversum
miniversum Sep 24, 2008 at 08:57:24 (UTC)
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
)
Member: ChrisM73
ChrisM73 Sep 24, 2008 at 09:05:29 (UTC)
Goto Top
a)die heissen alle 1.tif
b)geht ja in dem Fall leider nicht...
Member: ChrisM73
ChrisM73 Sep 24, 2008 at 09:19:17 (UTC)
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...
Member: miniversum
miniversum Sep 24, 2008 at 09:33:27 (UTC)
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
Member: ChrisM73
ChrisM73 Sep 24, 2008 at 09:50:37 (UTC)
Goto Top
hm jetzt führt er es zwar kurz aus, ohne Fehlermeldung, macht aber leider gar nix...
Member: miniversum
miniversum Sep 24, 2008 at 11:44:48 (UTC)
Goto Top
Da war ich jetzt unaufmerksam. Ändere mal in Zeile 5 das
goto:copyit "%%~i"
in
call:copyit "%%~i"
Member: ChrisM73
ChrisM73 Sep 24, 2008 at 11:47:26 (UTC)
Goto Top
hm leider das selbe Ergebnis...
Member: miniversum
miniversum Sep 24, 2008 at 11:56:23 (UTC)
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.
Member: ChrisM73
ChrisM73 Sep 24, 2008 at 12:04:56 (UTC)
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?
Member: miniversum
miniversum Sep 24, 2008 at 12:16:33 (UTC)
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
Member: ChrisM73
ChrisM73 Sep 24, 2008 at 12:24:38 (UTC)
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.
Member: miniversum
miniversum Sep 24, 2008 at 12:37:19 (UTC)
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