yellowBaron
02-08-2012, 16:22
ciao, dovrei fare uno script che faccia le seguenti cose:
0) si avvia con windows
1) ogni tot secondi controlla una cartella (ed eventuali sottocartelle)
2) se trova uno o più files di formato .dcm li converte in .jpg chiamando il programma Imagemagick che funziona da linea di comando (la sintassi dovrebbe essere "convert A.dcm B.jpg)
3) elimina le immagini dcm convertite.
il fatto è che non so programmare :mc:
qualcuno può darmi una mano?
grazie
Credo che basti a fare un file batch (.CMD), e usare l'utilità di pianificazione di windows per farlo eseguire ogni tot tempo.
Anche perché, iniziare a fare un programma senza basi di programmazione, soprattutto via forum, è troppo difficile :D
Un file batch è più alla portata, per quanto non è semplice, io quasi troverei più facile farlo in C# o VB.net :D
Sono dei linguaggi immensi, però almeno c'è l'ambiente di sviluppo che aiuta con la sintassi.
Comunque dipende tutto molto da che tipo di sintassi accetta il tuo programma per convertire.
Se accetta i caratteri jolly è tutto molto più facile.
Altrimenti bisogna usare un ciclo for, e non mi ricordo mai come si usa :D
Inoltre la cosa più complicata, è fare il controllo che la conversione sia andata a buon fine prima di cancellare il file.
Ma questo dipende molto dal programma che usi. Se non restituisce un valore di errorlevel, non ci si può fare nulla.
In pratica crei un file (di testo) vuoto, gli dai un nome e l'estensione è .CMD
Dentro ci dovrai scrivere, semplificando molto, giusto per iniziare a capire come funzionerebbe, qualcosa come:
convert *.dcm *.jpg
del *.dcm
E poi in teoria è pure finito, il resto lo fai con l'utilità di pianificazione.
Ovviamente come forse puoi intuire, questo sistema funziona solo se convert supporta i caratteri jolly.
Se non supporta i caratteri jolly come ho detto va usato un ciclo for, che ora per l'occasione stavo ripassando.
Comunque devi dire che sistema operativo usi perché ora io sono su Windows 7, ma su XP mi sa che qualche sintassi è diversa.
FOR /F "delims=" %A IN ('dir /b *.dcm') DO (
REM Esegue, per ogni file *.DCM, i comandi inclusi tra le parentesi
convert %A %A.JPG
REM %A rappresenta il nome del file, che cambia ogni volta che viene eseguito il ciclo. Se %A si chiama XYZ.DCM, il comando sarà convert XYZ.DCM XYZ.DCM.JPG
IF %ERRORLEVEL% EQU 0 del %A
REM Se la variabile errorlevel è uguale a 0, allora cancella il file %A. Come ho detto questo si può fare solo se convert supporta errorlevel, altrimenti devi eliminare il file senza poter fare il controllo.
)
Queste parti di codice che ti ho messo, sono da testare e perfezionare, non è tutto pronto.
Inoltre tutto è inteso per funzionare, con il file .CMD dello script dentro la cartella che contiene i file DCM.
Dovrai studiarci un po' tu, perché se riesci a capirci qualcosa magari puoi costruirti lo script un po' autonomamente, poi ovviamente chiedi informazioni.
Se lo vuoi già pronto, è più complicato :D , poi vabbé occorre la documentazione completa dei comandi di riga di comando della tua applicazione convert.
Inoltre chiedo anche io un po' di aiuto, perché in batch ho alcune lacune.
vBulletin® v3.6.4, Copyright ©2000-2025, Jelsoft Enterprises Ltd.