Kopieren von Dateien und Zuordnung dieser mittels erster vier Stellen des Dateinamens
Hallo zusammen,
bislang war ich immer stiller Mitleser, konnte jedoch zu meinem aktuellen Problem keine Lösung finden und wende mich deswegen einmal an euch.
Die Ausgangssituation ist folgende:
Wir haben Filmdaten (.mpg) auf externen HDDs, diese haben Dateinamen bestehend aus Zahlen und Buchstaben.
Beispiel: 0123abc1234.mpg
Anhand der ersten 4 Stellen des Dateinamens soll die Datei in einen Ordner kopiert werden, welcher als Ordnernamen die ersten 4 Stellen des Dateinamens trägt.
0123abc1234.mpg soll also in den Ordner 0123 kopiert werden.
Leider bin ich nicht besonders Scriptbewandert, und würde mich freuen wenn mir jemand helfen kann.
Hier habe ich schon nachgesehen, leider ist es mir nicht möglich gewesen, dass Script für meine Bedürfnisse abzuändern:
Mit welchem Batchbefehl kann ich zwischen Dateien unterscheiden deren Dateinamen mit Buchstaben und Zahlen anfangen?
Kurzzusammenfassung:
Filmdateien mit eindeutigen Dateinamen, anhand der ersten vier Stellen des Namens soll in einen entsprechenden Ordner verschoben werden.
Vielen vielen Dank vorab.
Edit: Dateien sollen kopiert werden, nicht verschoben (gemoved) wie ich vorher geschrieben hatte.
bislang war ich immer stiller Mitleser, konnte jedoch zu meinem aktuellen Problem keine Lösung finden und wende mich deswegen einmal an euch.
Die Ausgangssituation ist folgende:
Wir haben Filmdaten (.mpg) auf externen HDDs, diese haben Dateinamen bestehend aus Zahlen und Buchstaben.
Beispiel: 0123abc1234.mpg
Anhand der ersten 4 Stellen des Dateinamens soll die Datei in einen Ordner kopiert werden, welcher als Ordnernamen die ersten 4 Stellen des Dateinamens trägt.
0123abc1234.mpg soll also in den Ordner 0123 kopiert werden.
Leider bin ich nicht besonders Scriptbewandert, und würde mich freuen wenn mir jemand helfen kann.
Hier habe ich schon nachgesehen, leider ist es mir nicht möglich gewesen, dass Script für meine Bedürfnisse abzuändern:
Mit welchem Batchbefehl kann ich zwischen Dateien unterscheiden deren Dateinamen mit Buchstaben und Zahlen anfangen?
Kurzzusammenfassung:
Filmdateien mit eindeutigen Dateinamen, anhand der ersten vier Stellen des Namens soll in einen entsprechenden Ordner verschoben werden.
Vielen vielen Dank vorab.
Edit: Dateien sollen kopiert werden, nicht verschoben (gemoved) wie ich vorher geschrieben hatte.
Bitte markiere auch die Kommentare, die zur Lösung des Beitrags beigetragen haben
Content-ID: 259010
Url: https://administrator.de/forum/kopieren-von-dateien-und-zuordnung-dieser-mittels-erster-vier-stellen-des-dateinamens-259010.html
Ausgedruckt am: 29.12.2024 um 01:12 Uhr
18 Kommentare
Neuester Kommentar
Moin,
hatten wir genau hier:
Viele Dateien automatisch in bestehende Ordner ablegen
für dein Beispiel angepasst:
Gruß jodel32
hatten wir genau hier:
Viele Dateien automatisch in bestehende Ordner ablegen
für dein Beispiel angepasst:
@echo off & setlocal enabledelayedexpansion
set "quelle=C:\temp\quelle"
set "ziel=C:\temp\ziel"
for /f "delims=" %%a in ('dir /B /A-D "%quelle%\*.mpg" 2^>nul') DO @(
set "name=%%~na"
set "folder=!name:~0,4!"
if not exist "%ziel%\!folder!\" md "%ziel%\!folder!"
copy "%quelle%\%%a" "%ziel%\!folder!\"
)
Zitat von @ScriptingDAU:
Habe nur den Pfad mal für mich angepasst, auf C:\Test und C:\Ziel, allerdings bricht er in der For-Schleife wieder ab.. magst
du nochmal drübersehen?
Geht einwandfrei, du musst es falsch kopiert haben !!Habe nur den Pfad mal für mich angepasst, auf C:\Test und C:\Ziel, allerdings bricht er in der For-Schleife wieder ab.. magst
du nochmal drübersehen?
übrigens macht folgendes Powershell-Script das alles ebenfalls automatisch:
$quelle = "C:\quelle"
$ziel = "C:\\ziel"
gci "$quelle\*.mpg" -recurse | %{
$targetfolder = "$ziel\$($_.BaseName.SubString(0,4))"
if(!(Test-Path $targetfolder)){md $targetfolder -Force | out-null}
copy-item $_.FullName -Destination $targetfolder -Force
}
@echo off & setlocal enabledelayedexpansion
set "quelle=C:\quelle"
set "ziel=C:\ziel"
for /f "delims=" %%a in ('dir /B /A-D "%quelle%\*.mpg" 2^>nul') DO @(
set "name=%%~na"
set "folder=!name:~0,4!"
if not exist "%ziel%\!folder!\" md "%ziel%\!folder!"
if exist "%ziel%\!Folder!\%%~nxa" (
if not exist "%ziel%\!folder!\Historisch" md "%ziel%\!folder!\Historisch"
move "%ziel%\!Folder!\%%~nxa" "%ziel%\!folder!\Historie\!name!_%date%_%time:~0,2%%%~xa"
)
copy "%quelle%\%%a" "%ziel%\!folder!\"
)
Na wenns weiter nix is, oben ergänzt
p.s....arbeite mal an deinem IQ jetzt hab ich schon so viele Vorlagen geliefert, damit hätte das eigentlich auch ein DAU schaffen sollen.
p.s....arbeite mal an deinem IQ jetzt hab ich schon so viele Vorlagen geliefert, damit hätte das eigentlich auch ein DAU schaffen sollen.