Robo-XCopy: un front end per robocopy in stile Amiga, scritto in Rust in due ore e mezza
Robocopy è il miglior strumento di copia che Windows abbia già dentro, e nessuno ricorda i suoi parametri. Ieri ho passato due ore e mezza a dargli una faccia: quella dell'X-Copy dell'Amiga.
Robocopy è lo strumento di copia che Windows ha già dentro, ed è il migliore che ci sia: copia, specchia, sposta, riprova se la rete cade, conserva permessi e date. Il guaio è che i suoi parametri non li ricorda nessuno. Chi lo usa lo fa con una pagina di appunti aperta accanto, e il giorno in cui sbaglia un /MIR si accorge che cancella anche quello che non voleva.
Ieri ho costruito Robo-XCopy: una piccola interfaccia grafica per robocopy, con la schermata dell’X-Copy dell’Amiga, il programma con cui si copiavano i dischetti. È gratuito, open source, e si scarica da roboxcopy.com.
- Cos’è e come si usa
- Due temi, perché l’Amiga era così
- Due ore e mezza, e come ci si arriva
- Quello che ha insegnato robocopy vero
- Limiti e prossimi passi
- Provarlo
Cos’è e come si usa
Un solo file .exe da circa 5 MB, senza installer e senza niente da installare prima. Si scelgono cartella di origine e di destinazione, si spuntano le opzioni e si preme START.

Le cose che ho voluto fin dall’inizio:
-
DRY RUN. Mostra cosa farebbe robocopy (è il suo
/L) senza toccare niente. Prima di uno specchio è l’unico pulsante da premere. - Il comando sempre visibile. Ogni scelta cambia la riga di comando che il programma sta per lanciare, e la stessa riga è stampata in cima al log. Chi vuole imparare robocopy lo impara guardando.
-
Il COPY BUILDER. Ogni flag di
/COPYe/DCOPYcon una frase che spiega cosa fa, invece di lettere da ricordare (DATSOU). - Avanzamento in diretta: un file contato alla volta nella griglia delle tracce, come nell’originale.
- Il log dove si vuole, e il programma che sa quando servono i diritti di amministratore e, se serve, si riavvia da solo.

Mirror è l’opzione pericolosa: cancella nella destinazione quello che non c’è nell’origine. Il programma lo dice a chiare lettere, e la strada consigliata è sempre la stessa: prima DRY RUN.
Due temi, perché l’Amiga era così
Con il pulsante THEME si passa da Modern Amiga (blu) a Classic X-Copy: nero, argento e verde, con le caselle della griglia riempite di zeri come sullo schermo di un tempo. La scelta viene ricordata fra un avvio e l’altro.

Del programma originale ho preso solo l’idea della schermata. Il logo e la grafica sono altre cose, e l’icona (un dischetto con una X arancione) è disegnata a pixel in un file di testo, da cui si generano icona del programma, favicon e immagini del sito.
Due ore e mezza, e come ci si arriva
Il codice l’ha scritto Claude Code, in Rust. Il metodo è quello degli altri progetti di questi mesi, dal nuovo sito all’ACFS BGS Tool: decido io cosa deve fare e come deve sembrare, lui scrive, io guardo girare ogni modifica prima di accettarla. Il risultato sono circa 2.100 righe di Rust, e una suite di test che ne verifica il comportamento.
Le scelte tecniche, per chi è curioso:
- egui, con widget disegnati a mano su un’area di 640×330 che scala con la finestra. I pulsanti, le lampadine dei drive e le griglie non sono controlli di Windows: sono rettangoli e testo dipinti pixel per pixel, ed è per questo che la schermata è identica ovunque.
- Nessuna libreria in più per parlare con Windows. Servono poche chiamate (aprire un indirizzo web, sapere se il programma è elevato, riavviarlo come amministratore) e sono scritte direttamente.
- Il programma non reinventa robocopy. Lo lancia e ne legge l’output. I file si riconoscono dalla forma della riga (campi separati da tabulazione, una dimensione numerica) e non dal testo, perché robocopy stampa nella lingua di Windows: su un sistema italiano scrive “Nuovo file”. Così funziona con qualsiasi lingua.
Quello che ha insegnato robocopy vero
La parte che mi è piaciuta di più. I test sono 20, e molti non simulano robocopy: lo lanciano davvero, con tutte le opzioni che il costruttore può produrre. Sono saltate fuori cose che nessuna guida dice chiaramente:
-
/IPG(la pausa fra i blocchi) insieme a/MT(più thread) fa uscire robocopy con errore 16 e non copia niente. Ora, se si imposta una pausa, il programma passa a un solo thread. -
/B(modalità backup) e il flagUdi/COPYALLsenza diritti di amministratore fanno rifiutare l’avvio. Su questo si basa la finestra che propone di riavviare come amministratore. -
/XOsalta il file anche quando la copia di destinazione ha la stessa data, non solo una più recente. - Un backslash prima delle virgolette di chiusura (
C:\) rompe i parametri: i percorsi vengono normalizzati.
Una cosa invece l’ho trovata solo dopo la pubblicazione. La versione 0.1.0 importava vcruntime140.dll, cioè richiedeva il Visual C++ Redistributable, che un Windows appena installato non ha: da me partiva, altrove poteva non partire. L’ho scoperto elencando i nomi delle DLL dentro l’exe. Nella 0.1.1, uscita la sera stessa, la libreria C è collegata staticamente e l’exe cresce da 4,9 a 5,0 MB. È il tipo di errore che il computer dello sviluppatore non mostra mai.
Limiti e prossimi passi
Il programma non è ancora firmato, quindi Windows può mostrare l’avviso di SmartScreen alla prima esecuzione (Ulteriori informazioni, poi Esegui comunque). Ogni versione pubblicata ha l’impronta SHA-256 e l’attestazione di build di GitHub, con cui si verifica che l’exe sia davvero quello compilato dal codice del repository. La firma è in preparazione, e la pagina sulla firma del codice spiega a che punto è.
Nella lista delle cose da fare ci sono un avanzamento complessivo vero (con una scansione iniziale per contare file e dimensione totale), i profili salvabili, una notifica a fine copia, il trascinamento delle cartelle sulla finestra, l’interfaccia in italiano e inglese, e un installer. Più avanti, in una fase a parte, vorrei valutare una modalità per clonare e cancellare dischi, con tutte le protezioni del caso.
Provarlo
Il programma è su roboxcopy.com, con una guida passo passo. Il codice è su GitHub, con licenza MIT.
È nato ieri e ha ancora pochissimi utenti. Se lo provate e qualcosa non va, o se c’è un’opzione di robocopy che vi manca nella schermata, scrivetemelo: è esattamente quello che mi serve. E voi, quale strumento da riga di comando vorreste vedere con una faccia più amichevole?