vmihaylov
Goto Top

Verschieben von Dateien in zugehörige Ordner

Hallo allerseits!

Ich habe in einem Ordner sehr viele Dateien mit Artikelnummern als Namen (z.B. 123456.tiff, 123456.jpg, 215456.jpg,215456,tiff,...), die ich auf eigene Ordner verteilen möchte, also aus "D:/123456.jpg" sollte "E:/123456/123456.jpg" werden. Jeder Artikel sollte also einen eigenen Ordner mit der selben Nummer bekommen. Zwei gleiche Nummern, die verschiedene Formate haben, sollten beide in den selben Ordner kommen. Wäre nett, wenn mir jemand helfen könnte.

Vielen Dank im Voraus!

p.s. Ich habe keine Ahnung von Batch Dateien.
Könnte mir das einer genauer erklären...

Content-Key: 308968

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

Printed on: April 23, 2024 at 21:04 o'clock

Mitglied: 129813
129813 Jul 05, 2016 updated at 13:22:10 (UTC)
Goto Top
Use the search, this has already
been answered:
Musterlösungen: Dateien verschieben abhängig vom Teil des Dateinamens

Regards
Member: vmihaylov
vmihaylov Jul 05, 2016 at 13:30:08 (UTC)
Goto Top
Ich verstehe leider gar nichts.

Können Sie mir das bitte Schritt für Schritt für meinen Fall erklären ?

Danke schön!
Mitglied: 129813
129813 Jul 05, 2016 at 13:41:32 (UTC)
Goto Top
$source = 'c:\source'  
gci "$source\*.*" -recurse | group Basename | %{  
    $targetfolder = "$source\$($_.Name)"  
    if(!(Test-path $targetfolder)){md $targetfolder}
    $_.Group | move-item -Destination $targetfolder -Force
}
Member: batchnewbie
batchnewbie Jul 05, 2016 updated at 15:48:45 (UTC)
Goto Top
Hi,
hier auf die schnelle und ins blaue face-smile
Console (cmd.exe) starten, einfügen und wenn alles gut aussieht, das echo entfernen und somit scharf stellen:
for /f "delims=" %i in ('dir /b /a-d "d:\*.jpg" "d:\*.tiff"') do echo md e:\%~ni & echo move %i e:\%~ni  

Nachtrag:
Hier als Batch:
@echo off
cls
set "Verzeichnis=d:\"  
set "Typ=*.jpg" "*.tiff"  
set "Ziel=e:\"  

pushd %Verzeichnis% || goto :eof
for /f "delims=" %%i in ('dir /b /a-d "%Typ%"') do (  
    echo md "%Ziel%%%~ni" 2>nul  
    echo move %%i %Ziel%%%~ni
)
popd
pause
Hoffe das passt so... Fehler gefixt ... face-smile
Member: Snowman25
Snowman25 Jul 05, 2016 at 14:03:15 (UTC)
Goto Top
Hallo @vmihaylov,

Ist ein Zweizeiler:
cd Verzeichnis
forfiles /M *.* /C "cmd /c mkdir @fname"  
forfiles /M *.* /C "cmd /c move @path @fname\@file"  

Wie immer bei großen Dateioperationen: Davor ein Backup machen!

Gruß,
@Snowman25