|
|||||||
|
|
|
![]() |
|
|
Strumenti |
|
|
#1 |
|
Member
Iscritto dal: Feb 2015
Messaggi: 35
|
BATCH: Aiuto per eliminazione file
Ciao a tutti, ho la necessità di fare uno script sul mio server in cui devo cancellare dei file sulla sorgente, una volta riscontrato che sono presenti anche nella destinazione.
Praticamente la struttura è questa: Ho una cartella in C:\registrazioni\ che contiene tutte cartelle con il numero di telefono dentro le quali ci sono tutte le registrazioni che vengono fatte. La struttura completa è la seguente: C:\registrazioni\145\t2341424.wav C:\registrazioni\147\t2341425.wav I numeri di telefono, e quindi le cartelle sono circa 350 cartelle. Questi file vengono allo stesso tempo copiati in una directory con la seguente struttura D:\registrazionit\data\numero_telefono\file.wav Prima di cancellare i file nella sorgente, devo avere la certezza che i file *.wav devono essere copiati nella cartella D:\registrazionit\data\numero_telefono\file.wav. Non riesco a pensare come poter fare questo script e il problema è che non ho molta conoscenza dei possibili comandi per farlo. Qualcuno mi sa aiutare? Grazie mille |
|
|
|
|
|
#2 |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 3286
|
Come dicono qua https://stackoverflow.com/questions/...fter-copy-item sembra tu reinventi la ruota.
Con powershell comando Move-item (https://docs.microsoft.com/en-us/pow...w=powershell-6 ) Codice:
Move-Item -Path C:\registrazioni\ -Destination D:\registrazioni\ Puoi spiegarla meglio ? |
|
|
|
|
|
#3 | |
|
Member
Iscritto dal: Feb 2015
Messaggi: 35
|
Quote:
grazie mille. La struttura tra sorgente e destinazione è differente: La sorgente ha questa struttura: C:\REGISTRSAZIONI\numero_telefono\*.wav La destinazione ha questa struttura: D:\REGISTRAZIONIT\data\numero_telefono\*.wav Io ho la necessità di vedere che tutte le registrazioni dentro C:\REGISTRSAZIONI\numero_telefono\*.wav siano presenti dentro le cartelle presenti in D:\REGISTRAZIONIT\data\numero_telefono\*.wav Soltanto che mi resta difficile perché nella sorgente vengono registrate tutte le telefonate di tutti i giorni, e quindi dentro una cartella numero_telefono posso trovare anche telefonate di 4 mesi fa, mentre nella destinazione, la cartella "data" viene creata quotidianamente e vengono copiate le registrazioni del giorno stesso, quindi dovrei: 1) confrontare tutte le registrazioni presenti dentro le cartelle C:\REGISTRSAZIONI\numero_telefono con tutte quelle presenti in D:\REGISTRAZIONIT\data\numero_telefono\ 2) quando vengono trovate le stesse telefonate tra la sorgente e la destinazione, il programma cancella le telefonate sulla sorgente. Spero di non aver fatto ancora più confusione. Grazie mille |
|
|
|
|
|
|
#4 | |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 3286
|
Quote:
Altrimenti per essere sicuro dovresi fare un controllo che i files siano identici prima di cancellare, non basta il nome... |
|
|
|
|
|
|
#5 |
|
Member
Iscritto dal: Feb 2015
Messaggi: 35
|
Inizialmente il programmatore lo avevo fatto ma poi si perdevano un sacco di registrazioni e per questo era stato tolto ed ora vorrei rimediare altrimenti.
|
|
|
|
|
|
#6 |
|
Senior Member
Iscritto dal: Apr 2005
Messaggi: 3286
|
Evidentemente se si perdevano registrazioni, il problema è come è fatto lo script.
Quindi io personalmente tornerei ad analizzare lo script originario. Se proprio proprio ti piacciono davvero le cose complicate, ti serve uno script che faccia search, compare and delete. Ad esempio: http://www.readonlymaio.org/rom/2017...-the-fast-way/ (se noti c'è la versione sia per spostare i file duplicati che quella per elimnare): ovviamente dovrai adattarla un pelino affinche faccia il "list" in entrambe le cartelle, ma è roba easy. |
|
|
|
|
| Strumenti | |
|
|
Tutti gli orari sono GMT +1. Ora sono le: 15:41.



















