kleman
Goto Top

Batch - Dateien mit verschiedenen Erstellungsjahren

Hallo,

wie kann ich Dateien (mit verschiedenen Erstellungsjahren) in einen anderen Ordner (Ordnername ist das Erstellungsjahr der Datei) verschieben?

Vielen Dank für die Hilfe!

Content-Key: 3834429153

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

Printed on: May 11, 2024 at 07:05 o'clock

Mitglied: 11078840001
11078840001 Feb 09, 2024 updated at 10:41:15 (UTC)
Goto Top
PS
# quellordner
$quelle= "D:\Quelle"  
# zielordner
$ziel = "D:\Ziel"  
Get-ChildItem $quelle -File | move-item -Destination {(new-Item -type dir -path "$ziel\$($_.CreationTime.Year)" -Force).Fullname)} -verbose  
Member: kleman
kleman Feb 09, 2024 at 10:43:55 (UTC)
Goto Top
Danke für die schnelle Antwort..

Ich würde eine Lösung suchen um sie in eine bestehende Batchdatei zu integrieren.
Sorry, hab ich nicht dazugeschrieben..
Mitglied: 11078840001
Solution 11078840001 Feb 09, 2024 updated at 11:08:57 (UTC)
Goto Top
Kein Problem schnell in ne Batch eingbaut :-P
@echo off
set "quelle=D:\Quelle"  
set "ziel=D:\Ziel"  
powershell -EP Bypass -C "Get-ChildItem '%quelle%' -File | move-item -Destination {(new-Item -type dir -path \"%ziel%\$($_.CreationTime.Year)\" -Force).Fullname)} -verbose"  

oder nach "Art kalter Kaffee"

@echo off &setlocal enabledelayedexpansion
set "quelle=D:\Quelle"  
set "ziel=D:\Ziel"  
for %%a in ("%quelle%\*.*") do (  
    set "name=%%a" & set "name=!name:\=\\!"  
    for /f "tokens=2 delims==" %%b in ('wmic datafile where ^(Name^="!name!"^) get CreationDate /value') do (set "dt=%%b" &set "destination=%ziel%\!dt:~0,4!")	  
    if not exist "!destination!" md "!destination!" >nul  
    move "%%a" "!destination!\"  
)

p.s. Suchfunktion ..
Musterlösungen: Dateien verschieben abhängig vom Teil des Dateinamens
Member: kleman
kleman Feb 09, 2024 at 11:11:53 (UTC)
Goto Top
Super, das hat sofort geklappt.

Vielen Dank!