Come eliminare i file da una cartella utilizzando un elenco di nomi di file in Windows?


23

ho una cartella con 2K + di file, devo eliminare circa 200, ho un file txt con tutti i nomi di file che ho bisogno di essere ordinati in un elenco, come posso rimuovere i file specifici dalla cartella usando l'elenco? (Il sistema operativo è Windows 7)

Risposte:


18

Il modo semplice è copiare il file txt in un file chiamato mydel.batnella directory dei file da eliminare. Utilizzando un editor come Microsoft Word, modifica questo file. Effettua una sostituzione globale su Newline normalmente ^pin Word. Sostituiscilo con space/f^pdelspace. Questo cambierà

File1.bin
File20.bin
File21.bin

a (con /fper "imponi l'eliminazione dei file di sola lettura"):

File1.bin /f
del File20.bin /f
del File21.bin /f
del

Modifica la linea del pugno per aggiungere lo delspazio ed eliminare l'ultima riga.

Esegui il comando batch.


A parte l'
opzione

2
Probabilmente questo dovrebbe essere /fper "forzare l'eliminazione dei file di sola lettura" anziché /y.
Afrazier

Afrazier corretto. Stavo mescolando il / Y che funziona con XCOPY e uno o due altri programmi DOS per "Sopprimere la richiesta di confermare l'azione"
Kingchris,

Negli editor che sanno come trovare / sostituire con regex, come Notepad ++, dovrai sostituire "^" con "del" e "$" con "/ f", dove ^ rappresenta l'inizio di ogni riga e $ - fine.
Dan Mirescu,

38

Digita questo nella riga di comando, sostituendo il tuo file con files_to_delete.txt:

for /f %i in (files_to_delete.txt) do del %i

Una versione di questa adatta per essere inclusa nei .cmdfile (doppio %%) e in grado di gestire gli spazi nei nomi dei file:

for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"

1
Questo effettivamente cancellato l'elenco dei file invece dei file stessi ... ho dovuto creare di nuovo l'elenco: |
Avishking

4
Le mie scuse più profonde. Ho dimenticato la /fbandiera.
William Jackson,

È abbastanza carino, non sapevo che la linea di comando supportasse loop del genere. Ti interessa scrivere un post sul blog SU per questo e altri aspetti complessi della riga di comando?
Ivo Flipse

1
@Ivo: ti consigliamo di dare un'occhiata a computerhope.com/batch.htm o superuser.com/questions/tagged/batch per saperne di più. Come Unix, gran parte di ciò che può essere fatto negli script (file batch) può anche essere fatto direttamente dalla riga di comando.
BlueRaja - Danny Pflughoeft

Ho creato un file bat e copiato il secondo esempio: risultato: il file_to_delete.txt è ancora rimosso. (anche con la bandiera / f)
bvdb il

18

Utilizzando PowerShell:

Get-Content c:\path\to\list.txt | Remove-Item

1
Wow, è molto più leggibile del batch.
TheLQ

Per i futuri lettori ... Ho dovuto cambiare l'operatore di pipa in un >per farlo funzionare. Cioè Get-Content c:\path\to\list.txt > Remove-Item... ho avuto percorsi UNC completi nel mio list.txt. Spero che sia di aiuto.
NateJ,

@NateJ Ho provato a usare il >e mi ha appena creato un file, invece di eliminare le cose.
Brian J,

@BrianJ hmm, dovrò controllare di nuovo cosa ho fatto .. buona cattura.
NateJ,

1

Immagino che possa essere fatto con PowerShell.

Conoscendo Perl , tendo ad usarlo per questo genere di cose

perl -l -n -e "unlink" filenames.txt

1

Il primo metodo funziona dopo alcune modifiche:

  1. apri il Blocco note
  2. copiare tutti i nomi di file con estensione che devono essere eliminati dopo aver aggiunto delall'inizio come

    del File1.bin
    del File20.bin
    del File21.bin
    
  3. salva il file come xyz.batnella stessa cartella

  4. eseguire il file

2
... il file di testo nella domanda contiene circa 200 nomi di file. Perché aggiungere delmanualmente come stai proponendo, mentre le soluzioni sono già state pubblicate per automatizzarlo? A parte questo: qualsiasi editore sano avrebbe un po 'di supporto per la ricerca e la sostituzione incluse le terminazioni di riga (o inizio di riga, usando espressioni regolari), macro o per la modifica in modalità blocco o colonna (spesso avviata tenendo premuto Opzione o Alt e quindi selezionando un blocco, dopo di che si può semplicemente digitare su più righe contemporaneamente).
Arjan,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.