j'ai un dossier avec 2K + fichiers dedans, j'ai besoin de supprimer environ 200, j'ai un fichier txt avec tous les noms de fichiers que j'ai besoin de supprimer commandé dans une liste, comment puis-je supprimer les fichiers spécifiques du dossier en utilisant la liste? (OS est Windows 7)
Une méthode simple consiste à copier le fichier txt dans un fichier appelé mydel.bat
dans le répertoire des fichiers à supprimer. En utilisant un éditeur tel que Microsoft Word, éditez ce fichier. Effectuez un remplacement global sur Newline normalement ^p
dans Word. Remplacez-le par space/f^pdelspace
. Ça va changer
File1.bin
File20.bin
File21.bin
to (avec /f
pour "forcer la suppression des fichiers en lecture seule"):
File1.bin /f
del File20.bin /f
del File21.bin /f
del
Modifiez la première ligne pour ajouter l’espace del
et supprimer la dernière ligne.
Exécutez la commande batch.
Tapez ceci sur la ligne de commande, en remplaçant votre fichier par files_to_delete.txt
:
for /f %i in (files_to_delete.txt) do del %i
Une version de ceci appropriée pour inclure dans des fichiers .cmd
(double %%) et capable de traiter des espaces dans les noms de fichiers:
for /f "delims=" %%f in (files_to_delete.txt) do del "%%f"
Utilisation de PowerShell:
Get-Content c:\path\to\list.txt | Remove-Item
J'imagine que cela peut être fait avec PowerShell.
Connaissant Perl , j'ai tendance à l'utiliser pour ce genre de chose
Perl -l -n -e "unlink" filenames.txt
La première méthode fonctionne après quelques modifications:
copier tous les noms de fichiers avec l'extension qui doivent être supprimés après avoir ajouté del
au début comme
del File1.bin
del File20.bin
del File21.bin
enregistrer le fichier sous xyz.bat
dans le même dossier