È necessario lo script di Windows per creare cartelle denominate con le date dei file e spostare i file nella cartella corrispondente


0

Ho bisogno di uno script CMD o Powershell o di un file batch per

  • scorrere un elenco di file
  • crea una cartella denominata con la data di un file se non esiste già, quindi
  • sposta quel file nella sua cartella corrispondente.

Ho un elenco di circa 400 file come questo:

inserisci qui la descrizione dell'immagine

Usando questo come esempio, lo script dovrebbe creare una cartella contenente i primi due file chiamati 2018-05-16, una cartella con i 3 file successivi chiamati 2018-05-17ecc. Preferibilmente nella stessa cartella in cui si trovano i file ora.

Sono su Windows 8 se questo fa la differenza.

Risposte:


1

Directory di esempio prima

> gci

    Verzeichnis: A:\

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2018-05-16     16:02             14 GOPR0150.MP4
-a----       2018-05-16     16:10             14 GOPR0151.MP4
-a----       2018-05-17     01:25             14 GOPR0152.MP4
-a----       2018-05-17     01:32             14 GOPR0153.MP4
-a----       2018-05-17     01:32             14 GOPR0154.MP4

in esecuzione questo piccolo script di PowerShell

## Q:\Test\2018\09\06\SU_1355955.ps
ForEach($File in (Get-ChildItem '.\GOPR*.mp4')){
    $DestFolder = Join-Path $File.DirectoryName $File.LastWriteTime.ToString('yyyy-MM-dd')
    if (!(Test-Path $DestFolder)){MD $DestFolder|Out-Null}
    $File | Move-Item -Destination $DestFolder
}

> gci -recurse -file

    Verzeichnis: A:\2018-05-16

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2018-05-16     16:02             14 GOPR0150.MP4
-a----       2018-05-16     16:10             14 GOPR0151.MP4

    Verzeichnis: A:\2018-05-17

Mode                LastWriteTime         Length Name
----                -------------         ------ ----
-a----       2018-05-17     01:25             14 GOPR0152.MP4
-a----       2018-05-17     01:32             14 GOPR0153.MP4
-a----       2018-05-17     01:32             14 GOPR0154.MP4

Modifica: a seconda del formato della data locale potrebbe essere necessario
passare a.ToString('yyyy\-MM\-dd')

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.