daniel011
Goto Top

Zielordner automatisch auswählen lassen

Hallo,

ich möchte eine Batch zum Kopieren von Dateien erstellen.

Das ganze soll wie folgt aussehen:
Dateien, die im Januar erstellt wurden, sollen in einen Ordner mit dem Namen "Januar" kopiert werden.
Dateien, die im Februar erstellt wurden, sollen in einen Ordner mit dem Namen "Februar" kopiert werden usw.
Der Quellenordner ist dabei immer der gleiche.

Wie man einen Kopierbefehl programmiert ist mir bekannt. Was ich nicht weiß, ist wie man den entsprechenden Zielordner automatisch nach Erstelldatum der Datei auswählen lässt.

Ist dies überhaupt möglich? Wenn ja, wie sieht der Befehl aus?

Content-Key: 347476

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

Printed on: April 24, 2024 at 08:04 o'clock

Member: SeriousEE
SeriousEE Aug 28, 2017 at 11:23:08 (UTC)
Goto Top
Hallo,

mein Favorit hierfür ist Powershell
$folder = "C:\temp"  
$files = get-childitem $folder
foreach ($file in $files) {
   $creationdate = $file.CreationTime
   $month = Get-Date $creationdate -Format "MMMM"  
   Write-Host "$($file.Name ) created in $month"  
}

Man müsste nur mehr mit Move-Item die Dateien verschieben in ein Zielverzeichnis.

Viele Grüße
SeriousEE
Member: daniel011
daniel011 Aug 28, 2017 at 11:58:53 (UTC)
Goto Top
Hallo,

vielen Dank für die Antwort.

ich bin, was Batch Dateien anngeht noch ziemlicher Anfänger.

Ich dachte eher daran, Befehle wie xcopy oder robocopy so zu erweitern, dass ein Zielordner automatisch ausgewählt wird.

Zu oben stehendem Lösungsvorschlag:
Kann mir jemand erklären, was die einzelnen Befehle bedeuten bzw. was da passiert?
Mitglied: 133883
133883 Aug 28, 2017 at 14:17:14 (UTC)
Goto Top
Man man man diese Fragen kommen am Tag mindestens einmal, also Suchfunktion benutzen!
$quelle = 'c:\quelle'  
$ziel = 'c:\ziel'  
gci $quelle -File | group {$_.CreationTime.toString('MMMM')} | %{  
    $t = "$ziel\$($_.Name)"  
    if(!(Test-Path $t)){md $t | out-null}
    $_.Group | move-item -destination $t -Force
}
Gruß