|
|
|
|
Strumenti |
13-11-2020, 11:03 | #1 |
Member
Iscritto dal: Aug 2001
Città: Roma
Messaggi: 197
|
Aiuto per creazione batch file
Ciao a tutti, non sono esperto di batch file, chiedo a voi se qualcuno ne sa piu' di me.
Ho la una serie di file in una cartella formattati in questo modo: a a - b b b.xxx a a - c c c.xxx d d d - e e.xxx d d d - f f f.xxx .... Avrei bisogno di una procedura batch che mi crei n cartelle che si chiamino come la prima parte del nome del file a sinistra del - e che successivamente i file vengano inseriti nelle relative cartelle So che e' possibile farlo, ho provato a studiarmi un po il codice ma e' troppo complicato per le mie conoscenze. Qualcuno e' in grado di scrivermi la procedura batch? Grazie! |
13-11-2020, 17:29 | #2 |
Member
Iscritto dal: Jul 2008
Messaggi: 67
|
@Lele191278
Spero di aver capito la tua richiesta, prova e vedi se ti va bene. codice ----------------------------------------------------- @echo off cd %~dp0 if not exist %~dp0\a a - b b b md %~dp0\a a - b b b if not exist %~dp0\a a - c c c md %~dp0\a a - c c c if not exist %~dp0\d d d - e e md %~dp0\d d d - e e if not exist %~dp0\d d d - f f f md %~dp0\d d d - f f f move /y "%~dp0\a a - b b b.xxx" "%~dp0\a a - b b b" move /y "%~dp0\a a - c c c.xxx" "%~dp0\a a - c c c" move /y "%~dp0\d d d - e e.xxx" "%~dp0\d d d - e e" move /y "%~dp0\d d d - f f f.xxx" "%~dp0\d d d - f f f" exit ------------------------------------------------------- |
13-11-2020, 21:52 | #3 |
Member
Iscritto dal: Aug 2001
Città: Roma
Messaggi: 197
|
Ciao e grazie per la risposta, penso di essermi espresso male, ho usato le lettere ma i nomi dei file sono i più disparati, alcuni sono anche divisi da spazi ma quello che mi interessa è quello che c è prima del - che deve essere il nome delle singole cartelle.
Grazie |
14-11-2020, 11:49 | #4 |
Senior Member
Iscritto dal: May 2005
Messaggi: 8685
|
Come inizio da cui partire. Da qui puoi completare il codice
Codice:
@ECHO OFF SET "input=a a - b b b.xxx" FOR /f "tokens=1,2 delims=-" %%x IN ("%input%") DO ( echo sinistra: %%x echo destra: %%y ) PAUSE
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . |
15-11-2020, 19:50 | #5 |
Member
Iscritto dal: Aug 2001
Città: Roma
Messaggi: 197
|
Grazie x_master_x, ma sono un po imbranato in materia, sono riuscito tramite un po di test a tirar fuori questo codice
@echo off for %%a in (*.*) do ( md "%%~na" 2>nul move "%%a" "%%~na" ) pause ma il problema è che mi crea il nome delle cartelle uguale a quello del file, invece a me serve che il nome della cartella sia uguale a tutto quello che c'è a sx del - e che dentro questa cartella ci vadano a finire tutti i file con gli stessi caratteri a sx di - Riesci adarmi qualche altro aiuto? Grazie! |
15-11-2020, 20:40 | #6 |
Member
Iscritto dal: Aug 2001
Città: Roma
Messaggi: 197
|
Sono andato uno step avanti e sono riuscito a far creare le cartelle come volevo con questo codice
@ECHO OFF for /F "tokens=1,2 delims=-" %%A in ('dir /B *.*') DO ( md "%%A" 2>nul move "*.*" "%%A" ) PAUSE Ma poi mi sposta tutti i file in tutte le cartelle, invece deve spostare i singoli file nelle relative cartelle a seconda del nome (parte del file a sx del -) |
15-11-2020, 23:31 | #7 |
Senior Member
Iscritto dal: May 2005
Messaggi: 8685
|
Quasi. Visto che ti sei impegnato:
Codice:
@ECHO OFF FOR /F "tokens=1,2 delims=-" %%X IN ('DIR /B *.*') DO ( MD "%%X" MOVE "%%X-%%Y" "%%X" ) PAUSE Struttura iniziale: Codice:
abc - prova.txt cde - prova.txt efg - prova.txt Codice:
abc --> abc - prova.txt cde --> cde - prova.txt efg --> efg - prova.txt
__________________
. Thread Ufficiali: EasyCrypt ~ Old Files Manager ~ OSD Clock The real me is no match for the legend . |
16-11-2020, 10:35 | #8 |
Member
Iscritto dal: Aug 2001
Città: Roma
Messaggi: 197
|
Grazie, adesso funziona perfettamente!
|
Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 10:15.