web-dev-qa-db-fra.com

Supprimer un répertoire et ses fichiers en utilisant la ligne de commande mais ne pas lancer d'erreur s'il n'existe pas

J'ai besoin d'une commande Windows pour supprimer un répertoire et tous ses fichiers mais je ne veux pas voir d'erreurs si le répertoire n'existe pas.

69
jaywayco

Redirige la sortie de la commande del vers la valeur nulle. Noter la 2, pour indiquer que la sortie d'erreur doit être redirigée. Voir aussi cette question , et en particulier le document technique tilisation des opérateurs de redirection de commande .

del {whateveroptions} 2>nul

Ou vous pouvez vérifier l'existence du fichier avant d'appeler del:

if exist c:\folder\file del c:\folder\file

Notez que vous pouvez utiliser if exist c:\folder\ (avec le dernier \) pour vérifier si c:\folder est en effet un dossier et non un fichier.

70
GolezTrol

Soit rediriger stderr vers nul

rd /q /s "c:\yourFolder" 2>nul

Ou vérifiez que ce dossier existe avant de le supprimer. Notez que la fin \ est critique dans la condition IF.

if exist "c:\yourFolder\" rd /q /s "c:\yourFolder"
49
dbenham

Pour moi, sous Windows 10, ce qui suit fonctionne très bien:

if exist <path> rmdir <path> /q /s

q signifie "supprimer sans demander" et s signifie "supprimer tous les sous-dossiers et fichiers qu'il contient".

Et vous pouvez aussi concatiner la commande:

(if exist <path> rmdir <path> /q /s) && <some other command that executes after deleting>
6
christopher2007

Vous pouvez rediriger stderr vers nul

del filethatdoesntexist.txt 2>nul
3
Bali C