Batch um Dateien mit unregelmäßigen Namen und dazu zweite Datei mit nur anderer Endung in neues Verzeichnis zu verschieben
Habe hier viel gelesen, aber es passt irgendwie nichts von dem auf meinen Anforderungsbereich, der irgendwie kompliziert, und wenn händisch zu lösen, sehr langwierig ist.
Folgendes Problem besteht: Auf (meines Wissens bisher) 26 Notebooks wurde mit einer selbstprogrammierten Lösung aus unserer alten Firma von einem ehemaligen Mitarbeiter eine Datei ausgegeben, dessen Namen und Endung variiert. Grundsätzlich wird dazu eine Datei parallel erstellt, die sich nur von der Endung her unterscheidet (bild mit veriierendem format und endung). Das alles mehrmals am Tag, an 26 Plätzen, rückwirkend auf 2 Jahre.
Jetzt muss für ein neues Modul und dessen Import eine andere Struktur geschaffen werden. Dass das per Hand nicht geht, haben wir seit 2 Tagen in fummelarbeit schmerzhaft feststellen müssen. Parallel hat einer nach einer automatisierten Lösung gesucht, aber leider fehlt das Wissen, weshalb ich jetzt wirklich mal fragen muss.
Die batch soll:
1. am einfachsten immer den ersten Dateinamen im vorher gesetzten verzeichnis suchen
2. dessen namen ohne endung in eine variable setzen
3. ein verzeichnis mit dem namen erstellen
4. die partnerdatei mit gleichem namen aber ander endung zusammen mit der ersten in das neue verzeichnis verschieben
4a. in manchen fällen sogar eine dritte datei mit gleichem namen, aber wieder anderer endung mit verschieben
5. der partnerdatei (immer ein bild - format aber jpg, bmp, gif oder png) "folder" als namen verpassen
6. mit der nächsten, datei im ausgangsverzeichnis weiter machen
wenn wir das weiter händisch machen müssen, sind wir in grob geschätzten 4 jahren unserem ziel etwas näher.
normalerweise sollte von hersteller des neuen moduls ja sowas angeboten werden, aber als 4 mann-betrieb ist uns der migrations-support geringfügig zu teuer und ich hab so schon probleme meine firma über wasser zu halten. die daten von damals würden uns evtl. wieder frischen wind in die auftragsmappen bringen, ich wär sooo dankbar.
euer peiker
Folgendes Problem besteht: Auf (meines Wissens bisher) 26 Notebooks wurde mit einer selbstprogrammierten Lösung aus unserer alten Firma von einem ehemaligen Mitarbeiter eine Datei ausgegeben, dessen Namen und Endung variiert. Grundsätzlich wird dazu eine Datei parallel erstellt, die sich nur von der Endung her unterscheidet (bild mit veriierendem format und endung). Das alles mehrmals am Tag, an 26 Plätzen, rückwirkend auf 2 Jahre.
Jetzt muss für ein neues Modul und dessen Import eine andere Struktur geschaffen werden. Dass das per Hand nicht geht, haben wir seit 2 Tagen in fummelarbeit schmerzhaft feststellen müssen. Parallel hat einer nach einer automatisierten Lösung gesucht, aber leider fehlt das Wissen, weshalb ich jetzt wirklich mal fragen muss.
Die batch soll:
1. am einfachsten immer den ersten Dateinamen im vorher gesetzten verzeichnis suchen
2. dessen namen ohne endung in eine variable setzen
3. ein verzeichnis mit dem namen erstellen
4. die partnerdatei mit gleichem namen aber ander endung zusammen mit der ersten in das neue verzeichnis verschieben
4a. in manchen fällen sogar eine dritte datei mit gleichem namen, aber wieder anderer endung mit verschieben
5. der partnerdatei (immer ein bild - format aber jpg, bmp, gif oder png) "folder" als namen verpassen
6. mit der nächsten, datei im ausgangsverzeichnis weiter machen
wenn wir das weiter händisch machen müssen, sind wir in grob geschätzten 4 jahren unserem ziel etwas näher.
normalerweise sollte von hersteller des neuen moduls ja sowas angeboten werden, aber als 4 mann-betrieb ist uns der migrations-support geringfügig zu teuer und ich hab so schon probleme meine firma über wasser zu halten. die daten von damals würden uns evtl. wieder frischen wind in die auftragsmappen bringen, ich wär sooo dankbar.
euer peiker
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 120472
Url: https://administrator.de/forum/batch-um-dateien-mit-unregelmaessigen-namen-und-dazu-zweite-datei-mit-nur-anderer-endung-in-neues-verzeichnis-120472.html
Ausgedruckt am: 04.04.2025 um 04:04 Uhr
11 Kommentare
Neuester Kommentar
Hallo peiker,
ggf. ist das noch nicht die Endlösung für dein Problem, weil du nicht erwähnt hast, welches Format (Dateiendung) deine Ausgangsdatei hat. Aber einen Versuch ist es wert.
Falls die Ausgangsdatei nicht einer der geposteten Bildformate entspricht, bitte vorher noch die Dateiendung in der FOR Schleife hinzufügen.
ggf. ist das noch nicht die Endlösung für dein Problem, weil du nicht erwähnt hast, welches Format (Dateiendung) deine Ausgangsdatei hat. Aber einen Versuch ist es wert.
@echo off &setlocal
:: Dein Verzeichnis (anpassen):
set folder=c:\test
pushd "%folder%" 2>nul
if errorlevel 1 (
pause>nul|set /p "=Pfad nicht gefunden "
goto :eof
)
for /f "tokens=*" %%i in ('dir /a-d /b /on *.jpg *.bmp *.gif *.png') do call :sub "%%i"
for /f "tokens=*" %%j in ('dir /a-d /b /on') do move "%%j" ".\%%~nj\%%j" 2>nul
popd
echo.
pause>nul|set /p "=Fertig "
goto :eof
:sub
if "%before%"=="%~n1" (
move %1 ".\%~n1\folder%~x1"
) else (
md "%~n1"
move %1 ".\%~n1\folder%~x1"
)
set "before=%~n1"
goto :eof
Hi Peiker,
rubberman hat das Problem so wie ich das sehe ja schon gelöst, aber könntest du mir dennoch kurz einige
Erläuterungen geben, ich hab nämlich versucht das ganze mit VBScript umzusetzen und möchte das
auch noch zu Ende bringen
Zu meinen Fragen:
Befinden sich im Ausgansverzeichnis ausschließlich diese Bild Dateien oder auch andere Dateien?
Könntest du mir noch mal kurz erklären was bei Schritt 5 gemeint is mit folder als Dateinamen und
den Bild Formaten.?
@rubberman: Vielleicht kannst auch du mir das erklären, du hast ja anscheinend verstanden was gemeint ist ;)
Mfg Sebastian
rubberman hat das Problem so wie ich das sehe ja schon gelöst, aber könntest du mir dennoch kurz einige
Erläuterungen geben, ich hab nämlich versucht das ganze mit VBScript umzusetzen und möchte das
auch noch zu Ende bringen
Zu meinen Fragen:
Befinden sich im Ausgansverzeichnis ausschließlich diese Bild Dateien oder auch andere Dateien?
Könntest du mir noch mal kurz erklären was bei Schritt 5 gemeint is mit folder als Dateinamen und
den Bild Formaten.?
@rubberman: Vielleicht kannst auch du mir das erklären, du hast ja anscheinend verstanden was gemeint ist ;)
Mfg Sebastian
@peiker
Ist doch eigentlich kein Problem das noch gerade zu biegen. Gib mir doch einfach mal die Dateiendung der Hauptdatei(en).
Ist doch eigentlich kein Problem das noch gerade zu biegen. Gib mir doch einfach mal die Dateiendung der Hauptdatei(en).
Gern geschehen. Melde dich einfach nochmal, wenn irgendwas nicht klappt (oder vielleicht auch wenns klappt
).
Nur mal eben zu meiner Methode: Gehe rückwärts an die Sache ran.
- Zuerst werden die Bilddateien im Verzeichnis gesucht (nach Name sortiert).
- für jede gefundene Datei wird geprüft, ob die vorhergehende den gleichen Namen hatte,
Nur mal eben zu meiner Methode: Gehe rückwärts an die Sache ran.
- Zuerst werden die Bilddateien im Verzeichnis gesucht (nach Name sortiert).
- für jede gefundene Datei wird geprüft, ob die vorhergehende den gleichen Namen hatte,
- wenn nicht, wird ein neues Verzeichnis mit dem Dateinamen angelegt und die Datei unter Änderung des
- wenn ja, wird die Datei in das vorhandene Verzeichnis verschoben und ebenfalls umbenannt
existiert. Falls ja, wird die Datei dort hinein verschoben.
Der Fehler für Dateien ohne Endung liegt darin begründet, dass, wenn im ersten Durchlauf das Verzeichnis angelegt wird, bereits eine Datei existiert, die exakt so heißt, wie das Verzeichnis benannt werden soll. Der MD Befehl kann in dem Moment nicht unterscheiden, dass es sich dabei um eine Datei handelt und nicht um ein Verzeichnis. Resultat ist, dass kein Verzeichnis angelegt wird und damit alle weiteren Aktionen nicht durchgeführt werden können.
Vielleicht wissen die Batch-Gurus (wie Biber, Bastla, Miniversum und und und...) eine Lösung.
Hallo nochmal 
ich weiß zwar immer noch net ob alle Dateien im entsprechenden Ordner bearbeitet werden sollen oder nur
einige steh wahrscheinlich etwas aufm Schlauch ^^
Hier jedenfalls meine Lösung mit VBScript.
Das Script kommt auch mit Dateien ohne Endung zurecht.
Sollen nur bestimmt Dateitypen bearbeitet werden lässt sich das bestimmt auch noch mittels Abfrage von "ext"
umsetzen.
Probiers mal aus vielleicht hilft es dir ja weiter.
Gruß Sebastian
ich weiß zwar immer noch net ob alle Dateien im entsprechenden Ordner bearbeitet werden sollen oder nur
einige steh wahrscheinlich etwas aufm Schlauch ^^
Hier jedenfalls meine Lösung mit VBScript.
folder = "C:\test\"
Set fso = CreateObject("Scripting.FileSystemObject")
Set fsoFolder = fso.GetFolder(folder)
For Each fsoFile In fsoFolder.Files
on error resume next
' Filename ohne Endung in Variable schreiben
filename = fso.getBaseName(fsoFile)
' Endung in Variable speichern
ext = fso.GetExtensionName(fsoFile)
' Datei umbennen, da sonst bei Dateien ohne Endung kein
' Ordner erstellt werden kann
fsoFile.name = "folder." + ext
' Falls der Ordner noch nicht vorhanden ist wird er erstellt
if not fso.folderExists(folder & filename) then
fso.CreateFolder(folder & filename)
End If
' Datei in den Ordner verschieben
dest_path = folder & filename & "\"
fso.MoveFile fsoFile, dest_path
Next
Set fso = Nothing
Set fsoFolder = Nothing
Das Script kommt auch mit Dateien ohne Endung zurecht.
Sollen nur bestimmt Dateitypen bearbeitet werden lässt sich das bestimmt auch noch mittels Abfrage von "ext"
umsetzen.
Probiers mal aus vielleicht hilft es dir ja weiter.
Gruß Sebastian