JPG Datei nach kopieren per Batch Datei defekt bzw. unbrauchbar
Hallo zusammen,
habe bereits hier im Forum gesucht jedoch nichts zu diesem Thema gefunden.
Woran könnte es liegen das wenn ich eine Datei ( Foto, JPG ) per Batch Datei kopiere die Kopie
nicht zu öffnen ist ?
Der Inhalt der Batch Datei sieht wie folgt aus:
copy C:\1\????????.jpg C:\2\Foto.jpg
del /f /s /q ì "C:\1"
Die Datei wird auf einem Windows 7 Pro 64 Bit Rechner ausgeführt.
Vielen Dank schonmal vorab !
habe bereits hier im Forum gesucht jedoch nichts zu diesem Thema gefunden.
Woran könnte es liegen das wenn ich eine Datei ( Foto, JPG ) per Batch Datei kopiere die Kopie
nicht zu öffnen ist ?
Der Inhalt der Batch Datei sieht wie folgt aus:
copy C:\1\????????.jpg C:\2\Foto.jpg
del /f /s /q ì "C:\1"
Die Datei wird auf einem Windows 7 Pro 64 Bit Rechner ausgeführt.
Vielen Dank schonmal vorab !
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 267209
Url: https://administrator.de/contentid/267209
Ausgedruckt am: 22.11.2024 um 00:11 Uhr
12 Kommentare
Neuester Kommentar
Hallo @ThomasNeumann,
Schonmal einen bitweisen Vergleich der Dateien angestoßen? Ich nehme an, dass
Ansonsten könnte es sein, dass
Also mach's so:
/V überprüft nochmal extra die Integrität der Datei nach der Kopie.
Dann solltest du die Quelldatei aber auch nur bei Erfolg löschen:
Gruß,
@Snowman25
Schonmal einen bitweisen Vergleich der Dateien angestoßen? Ich nehme an, dass
del
die Datei löscht, bevor sie komplett kopiert worden ist.Ansonsten könnte es sein, dass
copy
ASCII kopiert. ein JPG sollte aber binär kopiert werden.Also mach's so:
copy /B C:\1\??????.jpg C:\2\Foto.jpg
Dann solltest du die Quelldatei aber auch nur bei Erfolg löschen:
copy /B /V C:\1\??????.jpg C:\2\Foto.jpg
If errorlevel 1 del /f /s /q "C:\1"
Gruß,
@Snowman25
Hi,
Dass del greift bevor copy fertig ist wage ich zu bezweifeln - der code wird nacheinander abgearbeitet, wenn copy noch nicht fertig ist, kann del auch noch nicht anfangen.
Möglich wäre es dass die datei während des kopiervorganges noch in einem prozess geöffnet ist.
Nachdem copy schon relativ veraltet ist - möchtest du nicht stattdessen robocopy verwenden?
Lg
Dass del greift bevor copy fertig ist wage ich zu bezweifeln - der code wird nacheinander abgearbeitet, wenn copy noch nicht fertig ist, kann del auch noch nicht anfangen.
Möglich wäre es dass die datei während des kopiervorganges noch in einem prozess geöffnet ist.
Nachdem copy schon relativ veraltet ist - möchtest du nicht stattdessen robocopy verwenden?
Lg
Hallo Thomas,
ich habe noch nie erlebt, dass COPY beim Kopieren einer einzelnen Datei diese Datei verändert hat. Und ROBOCOPY zum Kopieren einer einzelnen Datei ist mit Kanonen auf Spatzen geschossen.
Aber ich gehe davon aus, dass du gar keine einzelne Datei kopierst: Dein COPY nimmt alle JPG-Dateien, deren Name 8 Stellen hat, und kopiert sie hintereinander in die neue Datei Foto.jpg. Und die ist dann natürlich keine gültige Bilddatei mehr, egal ob du /B angegeben hast oder nicht.
Vielleicht erklärst du einfach mal, was du wirklich erreichen möchtest. Wenn du eine Datei nur verschieben willst, kannst du auch MOVE verwenden.
Gruß vom
WinCobold
ich habe noch nie erlebt, dass COPY beim Kopieren einer einzelnen Datei diese Datei verändert hat. Und ROBOCOPY zum Kopieren einer einzelnen Datei ist mit Kanonen auf Spatzen geschossen.
Aber ich gehe davon aus, dass du gar keine einzelne Datei kopierst: Dein COPY nimmt alle JPG-Dateien, deren Name 8 Stellen hat, und kopiert sie hintereinander in die neue Datei Foto.jpg. Und die ist dann natürlich keine gültige Bilddatei mehr, egal ob du /B angegeben hast oder nicht.
Vielleicht erklärst du einfach mal, was du wirklich erreichen möchtest. Wenn du eine Datei nur verschieben willst, kannst du auch MOVE verwenden.
Gruß vom
WinCobold
Hallo,
das ist teilweise etwas OT und ich möchte hier keine "Linux vs. Windows artige Diskussion" starten.
Meine Meinung ist, dass wenn COPY augenscheinlich zu Problemen führt, man Alternativen ausprobieren sollte; dazu gehört robocopy nunmal, da es auch ein bordmittel ist - wenn robocopy HILFT, kann man es doch auch verwenden, egal, ob man dann "mit Kanonen auf Spatzen" schießt.
Kann natürlich auch sein, dass robocopy NICHT hilft (möglicherweise genauso wenig wie andere Programme) - dann hat man das Programm selbst, aber schon mal als Fehlerquelle ausgeschlossen und kann weitersuchen, zb, ob der Virenscanner aktiviert ist und ob die beiden Verzeichnisse vom automatischen Scan ausgeschlossen sind.
Des Weiteren könnte man über die Routine des Scripts nachdenken - so zb., dass es möglich ist, dass COPY (oder alle anderen) nicht damit zurecht kommen, dass das Foto während des Kopiervorganges umbenannt wird - daher könnte man das Foto mit Originalnamen kopieren, dann das Original löschen und dann in einer extra batch (oder in der gleichen - sollte fast egal sein) dann das Rename anstoßen.
Lg
das ist teilweise etwas OT und ich möchte hier keine "Linux vs. Windows artige Diskussion" starten.
Meine Meinung ist, dass wenn COPY augenscheinlich zu Problemen führt, man Alternativen ausprobieren sollte; dazu gehört robocopy nunmal, da es auch ein bordmittel ist - wenn robocopy HILFT, kann man es doch auch verwenden, egal, ob man dann "mit Kanonen auf Spatzen" schießt.
Kann natürlich auch sein, dass robocopy NICHT hilft (möglicherweise genauso wenig wie andere Programme) - dann hat man das Programm selbst, aber schon mal als Fehlerquelle ausgeschlossen und kann weitersuchen, zb, ob der Virenscanner aktiviert ist und ob die beiden Verzeichnisse vom automatischen Scan ausgeschlossen sind.
Des Weiteren könnte man über die Routine des Scripts nachdenken - so zb., dass es möglich ist, dass COPY (oder alle anderen) nicht damit zurecht kommen, dass das Foto während des Kopiervorganges umbenannt wird - daher könnte man das Foto mit Originalnamen kopieren, dann das Original löschen und dann in einer extra batch (oder in der gleichen - sollte fast egal sein) dann das Rename anstoßen.
Lg
Hallo Thomas,
ist denn auch tatsächlich keine Foto.jpg in dem zweiten Ordner vorhanden? Nicht dass da eine alte (und defekte) Datei steht, die nie überschrieben wird.
Und lass doch mal den DEL weg. Dann kannst du nach dem Kopieren vergleichen, was in den beiden Ordnern steht. Mach mal einen DIR in beiden Ordnern und stell uns den hier rein, vielleicht kann man da ja was erkennen.
Achja: wenn du die Abfrage auf den ERRORLEVEL so eingebaut hast, wie sie Snowman25 vorgeschlagen hat, und die Datei dann gelöscht wurde, heißt das, dass beim Kopieren ein Fehler aufgetreten ist. Gibt es denn irgendwelche Meldungen beim Ausführen der Batch?
Gruß vom
WinCobold
ist denn auch tatsächlich keine Foto.jpg in dem zweiten Ordner vorhanden? Nicht dass da eine alte (und defekte) Datei steht, die nie überschrieben wird.
Und lass doch mal den DEL weg. Dann kannst du nach dem Kopieren vergleichen, was in den beiden Ordnern steht. Mach mal einen DIR in beiden Ordnern und stell uns den hier rein, vielleicht kann man da ja was erkennen.
Achja: wenn du die Abfrage auf den ERRORLEVEL so eingebaut hast, wie sie Snowman25 vorgeschlagen hat, und die Datei dann gelöscht wurde, heißt das, dass beim Kopieren ein Fehler aufgetreten ist. Gibt es denn irgendwelche Meldungen beim Ausführen der Batch?
Gruß vom
WinCobold
Zitat von @WinCobold:
Achja: wenn du die Abfrage auf den ERRORLEVEL so eingebaut hast, wie sie Snowman25 vorgeschlagen hat, und die Datei dann
gelöscht wurde, heißt das, dass beim Kopieren ein Fehler aufgetreten ist. Gibt es denn irgendwelche Meldungen beim
Ausführen der Batch?
*facepalm*Achja: wenn du die Abfrage auf den ERRORLEVEL so eingebaut hast, wie sie Snowman25 vorgeschlagen hat, und die Datei dann
gelöscht wurde, heißt das, dass beim Kopieren ein Fehler aufgetreten ist. Gibt es denn irgendwelche Meldungen beim
Ausführen der Batch?
Wieso fällt mir erst jetzt auf, dass ich die Datei lösche, wenn ein Fehler aufgetreten ist?
Das sollte natürlich andersherum sein!
COPY /B /V C:\1\??????.jpg C:\2\Foto.jpg
IF errorlevel 1 @ECHO Fehler & @PAUSE & GOTO :EOF
DEL /f /s /q "C:\1"
Gruß,
@Snowman25
Hallo,
Ich habe einen Script geschrieben, den einfach in eine Batch geschrieben, diese nur noch in eine Batch Kopieren und dann kann das kopieren losgehen
Florian
(at)echo off
title Daten Kopierer
:Datei
cls
set /p pfad=Dateipfad der zu Kopierenden Datei eingeben:
:EndDatei
cls
set /p efile=Dateipfad der Neuen Datei Angeben (mit endung z.B. JPG)
:copy
if not exist %pfad% goto fail1
copy %pfad% %efile%
goto OK
:fail1
cls
echo.
echo Zu Kopierende Datei existiert nicht.
pause>nul
goto Datei
:OK
if not exist %efile% goto nichtg
cls
echo.
echo Datei Erfolgreich Kopiert.
pause>nul
exit
:nichtg
cls
echo.
echo Datei konnte NICHT Kopiert werden.
pause>nul
goto Datei
SRY Hab kein plan wie man so einen Coolen Text mit linien machen kann, aber geht auch so.
Ich habe einen Script geschrieben, den einfach in eine Batch geschrieben, diese nur noch in eine Batch Kopieren und dann kann das kopieren losgehen
Florian
(at)echo off
title Daten Kopierer
:Datei
cls
set /p pfad=Dateipfad der zu Kopierenden Datei eingeben:
:EndDatei
cls
set /p efile=Dateipfad der Neuen Datei Angeben (mit endung z.B. JPG)
:copy
if not exist %pfad% goto fail1
copy %pfad% %efile%
goto OK
:fail1
cls
echo.
echo Zu Kopierende Datei existiert nicht.
pause>nul
goto Datei
:OK
if not exist %efile% goto nichtg
cls
echo.
echo Datei Erfolgreich Kopiert.
pause>nul
exit
:nichtg
cls
echo.
echo Datei konnte NICHT Kopiert werden.
pause>nul
goto Datei
SRY Hab kein plan wie man so einen Coolen Text mit linien machen kann, aber geht auch so.
SRY Hab kein plan wie man so einen Coolen Text mit linien machen kann, aber geht auch so.
Dann solltest du mal die Anleitung zu dem Forum lesen, in dem du dich hier bewegst... Und "geht auch so" kann ich nicht unterschreiben...
Also: Formatierungen in den Beiträgen lesen und den Beitrag nachbessern!
(OK Nochmal)
Hallo,
Ich habe eine Batch Datei geschrieben die man dazu nur in eine Weier Batch Hineinkopiert weden muss,
Ich habe es auf einen Sehr leichten Prinzip aufgebaut
Dazu kann am noch damit es die Daten löscht , am springpunkt(OK) sowas einfügen
(also vor exit)
Ich hoffe das Hilft abe auch ohne Probleme eine JPG datei kopiert und die ist auch heil angekommen.
Florian
Hallo,
Ich habe eine Batch Datei geschrieben die man dazu nur in eine Weier Batch Hineinkopiert weden muss,
Ich habe es auf einen Sehr leichten Prinzip aufgebaut
@echo off
title Daten Kopierer
:Datei
cls
set /p pfad=Dateipfad der zu Kopierenden Datei eingeben (mit endung z.B. .JPG):
:EndDatei
cls
set /p efile=Dateipfad der Neuen Datei Angeben (mit endung z.B. .JPG)
:copy
if not exist %pfad% goto fail1
copy %pfad% %efile%
goto OK
:fail1
cls
echo.
echo Zu Kopierende Datei existiert nicht.
pause>nul
goto Datei
:OK
if not exist %efile% goto nichtg
cls
echo.
echo Datei Erfolgreich Kopiert.
pause>nul
exit
:nichtg
cls
echo.
echo Datei konnte NICHT Kopiert werden.
pause>nul
goto Datei
Dazu kann am noch damit es die Daten löscht , am springpunkt(OK) sowas einfügen
(also vor exit)
del %pfad%
Ich hoffe das Hilft abe auch ohne Probleme eine JPG datei kopiert und die ist auch heil angekommen.
Florian