Pagina 1 di 2 1 2 ultimoultimo
Visualizzazione dei risultati da 1 a 10 su 20
  1. #1
    Utente di HTML.it L'avatar di qqaa11
    Registrato dal
    Jun 2003
    Messaggi
    45

    Cancellare tutte le cartelle $ con comando dos

    Salve a tutti, vorrei creare un file bat che cancelli le cartelle create dell' update di windows (quelle che iniziano con $).
    Ho provato in tutti i modi senza riuscirci, l'unica cosa che riesco a fare è cancellare, con il comando "del" il contenuto di alcune cartelle.
    Vi ringrazio anticipatamente
    Ciao Papa'

  2. #2
    Utente di HTML.it L'avatar di nelsonblu
    Registrato dal
    Feb 2007
    Messaggi
    2,234
    mmm.. vecchi ricordi, preistoria informatica

    il comando potentissimo che faceva questo nel dos era deltree.exe
    Accettava * e ?
    e quindi nel tuo caso
    sarebbe bastato

    deltree $* /S /Q

    aventualmente toglievi prima di attributi di sistema se esistevano con un
    attrib -s -h -r

    Quindi c'è la possibilità, se il tuo hardisk è fat32, di partire con un cd o floppy di sistema windows 98 con deltree e procedere... (googlondo li trovi ancora certamente)

    il comando attuale che lo sostituisce è RMDIR, simile a deltree ma purtroppo non supporta * e ?
    quindi devi scrivere una per una le cartelle da eliminare

    RMDIR /s/Q $nomedellacartella

  3. #3
    Più banalmente
    codice:
    del /s /q /f $*
    ma non so quanto sia una buona idea cancellare i file di backup degli aggiornamenti in maniera così brutale .
    Amaro C++, il gusto pieno dell'undefined behavior.

  4. #4
    Utente di HTML.it L'avatar di nelsonblu
    Registrato dal
    Feb 2007
    Messaggi
    2,234
    Non sapevo che DEL sui sistemi operativi attuali nelle finestre cmd gestisce gli * per i nomi di cartelle.
    Ho appena provato e sul cmd di windows 7 infatti non funziona, necessita del nome intero di una cartella affinchè il comando abbia effetto
    Ho fatto una prova su una cartella di nome "nuovacartella" piena di file
    Ecco l'esito

  5. #5
    In effetti è curioso, non sapevo che avesse questa limitazione (ormai sono abituato alle shell Unix che gestiscono l'espansione degli * per i fatti loro ), suppongo che sia per evitare eliminazioni globali indesiderate.

    In ogni caso, si può risolvere con un for:
    codice:
    FOR /D %%G in ("$*") DO del /s /q /f %%G
    Nota importante: non l'ho provato (non ho una macchina Windows sottomano), per cui conviene provarlo in una qualche directory di prova prima di usarlo in c:\windows.
    Amaro C++, il gusto pieno dell'undefined behavior.

  6. #6
    Utente di HTML.it L'avatar di nelsonblu
    Registrato dal
    Feb 2007
    Messaggi
    2,234
    yes, appena provato
    il ciclo For funziona perfettamente

  7. #7
    Utente di HTML.it L'avatar di qqaa11
    Registrato dal
    Jun 2003
    Messaggi
    45
    Grazie x le risp. ma non mi funziona, ho incollato la riga "FOR /D %%G in ("$*") DO del /s /q /f %%G" nel bat ma non sortisce alcun effetto.
    ...dimenticavo, sistema operativo win xp sp4
    Ciao Papa'

  8. #8
    Utente di HTML.it L'avatar di nelsonblu
    Registrato dal
    Feb 2007
    Messaggi
    2,234
    Hai tolto gli attributi come ti era stato suggerito nei post precedenti?
    Se no, aggiungi nel file batch prima del ciclo for questa riga

    attrib -h -s -r $*.* /S /D

  9. #9
    Utente di HTML.it L'avatar di qqaa11
    Registrato dal
    Jun 2003
    Messaggi
    45
    niente, proprio tosti sti file, inoltre se lancio il for da start mi da queto errore
    Ciao Papa'

  10. #10
    Utente di HTML.it L'avatar di qqaa11
    Registrato dal
    Jun 2003
    Messaggi
    45
    ecco l'errrore
    Immagini allegate Immagini allegate
    Ciao Papa'

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2025 vBulletin Solutions, Inc. All rights reserved.