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

Se Windows genera un errore, hai un problema di virus o vuoi discutere/segnalare l'uscita della nuova versione di un software per la piattaforma Microsoft, questa è la sezione giusta.
Regole del forum
Rispondi
Avatar utente
Farrokh_46
Livello: Scheda perforata (1/15)
Livello: Scheda perforata (1/15)
Messaggi: 2
Iscritto il: lun dic 04, 2023 5:14 pm

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

Messaggio 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 :)
System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

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

Messaggio da System » lun dic 04, 2023 5:21 pm


Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

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

Messaggio 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
Avatar utente
Farrokh_46
Livello: Scheda perforata (1/15)
Livello: Scheda perforata (1/15)
Messaggi: 2
Iscritto il: lun dic 04, 2023 5:14 pm

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

Messaggio da Farrokh_46 »

Ciao Zigul,
funziona perfettamente !

Grazie infinite
Avatar utente
CUB3
Moderatore
Moderatore
Messaggi: 3985
Iscritto il: lun gen 26, 2015 10:13 am

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

Messaggio 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 ;)
"Let me tell you a secret: when you hear that the machine is “smart”, what it actually means is that it’s exploitable." Mikko Hypponen
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

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

Messaggio 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.
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

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

Messaggio 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.
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

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

Messaggio 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".
Avatar utente
crazy.cat
Amministratore
Amministratore
Messaggi: 12502
Iscritto il: mer mag 01, 2013 4:02 pm
Località: Noventa Padovana
Contatta:

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

Messaggio 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.
“Se tutti i documenti raccontavano la stessa favola, ecco che la menzogna diventava un fatto storico, quindi vera.”
Avatar utente
Zigul
VIP
VIP
Messaggi: 220
Iscritto il: dom ott 08, 2023 12:11 am

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

Messaggio 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.
System
System
Bot ufficiale TurboLab.it
Bot
Messaggi:
Iscritto il: sab dic 31, 2016 6:19 pm
Contatta: Contatta

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

Messaggio da System » mar dic 05, 2023 9:23 pm


Rispondi
  • Argomenti simili
    Risposte
    Visite
    Ultimo messaggio