Pagina 1 di 1

FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: lun dic 04, 2023 5:21 pm
da Farrokh_46
Ciao a tutti,
dovrei creare un file bat che da una lista di file mi generi in automatico delle cartelle con lo stesso nome dei file e che sposti i singoli file nelle singole cartelle create.

Esempio:

da File "A" con file bat genero: Cartella "A" contenente file "A"
da File "B" con file bat genero: Cartella "B" contenente file "B"
da File "C" con file bat genero: Cartella "C" contenente file "C"

Grazie a tutti in anticipo :)

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: lun dic 04, 2023 10:17 pm
da Zigul
Questo dovrebbe funzionare, devi solo inserire i percorsi giusti al posto delle parentesi quadre:

Codice: Seleziona tutto

@echo off
setlocal enabledelayedexpansion

set "sourceFolder=[percorso cartella sorgente]"
set "destinationFolder=[percorso cartella destinazione, anche la stessa della sorgente]"

for %%F in ("%sourceFolder%\*.*") do (
    set "fileName=%%~nF"
    set "newFolder=!destinationFolder!\!fileName!"
    md "!newFolder!" 2>nul
    move "%%F" "!newFolder!\%%~nxF"
)

endlocal

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: mar dic 05, 2023 9:47 am
da Farrokh_46
Ciao Zigul,
funziona perfettamente !

Grazie infinite

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: mar dic 05, 2023 10:41 am
da CUB3
Bellissimo script, Zigul! :clap

Solo un suggerimento: quando scrivi del codice, utilizza i tag appositi per dargli il giusto risalto e mantenere i caratteri corretti ;)

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: mar dic 05, 2023 11:19 am
da Zigul
Il merito dello script va all'AI (Perplexity); le prime 4 o 5 volte ha proposto script che non funzionavano adeguatamente, ma poi "siamo riusciti" a calibrare quello giusto (io ho fatto perlopiù solo da tester).
Grazie a CUB3 per il suggerimento e per aver modificato il mio post, così è decisamente più chiaro.

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: mar dic 05, 2023 1:48 pm
da crazy.cat
Zigul ha scritto: lun dic 04, 2023 10:17 pm setlocal enabledelayedexpansion
Mi sai dire il perché di questa riga?

Tengo da parte questo file per vedere se posso ricavarci un articolo.

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: mar dic 05, 2023 3:12 pm
da Zigul
Senza quella opzione lo script creava un'unica cartella "!newfolder!" e spostava lì tutti i file; quel comando permette di gestire la variabile "filename" (e quindi poi "newfolder") con un valore (ossia un nome, in questo caso) differente per ogni ciclo di "for".

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: mar dic 05, 2023 3:48 pm
da crazy.cat
Zigul ha scritto: mar dic 05, 2023 3:12 pm Senza quella opzione lo script creava un'unica cartella "!newfolder!" e spostava lì tutti i file; quel comando permette di gestire la variabile "filename" (e quindi poi "newfolder") con un valore (ossia un nome, in questo caso) differente per ogni ciclo di "for".
Interessante, se riesco a tirarci fuori un articolo ti inserisco come coautore.
L'idea può essere utile anche ad altri.

Re: FILE BATCH - Creare cartelle da lista di file, spostando gli stessi all'interno delle cartelle

Inviato: mar dic 05, 2023 9:23 pm
da Zigul
Se devo essere onesto, come coautore penso dovresti citare Perplexity: non avrei saputo scrivere quel codice da solo e questo è forse il terzo file batch che ho usato in vita mia... comunque non nascondo che ho salvato lo script, non sia mai potesse tornare utile, quindi grazie a Farrokh_46 per lo spunto.