Effacer le contenu d’un répertoire, tant les sous-répertoire que les fichiers, peut paraitre simple.
Mais après quelques tests, il s’avère que l’opération est plus complexe que prévu.
Un script batch DOS peut le faire pour vous:
Supprimer le contenu d’un repertoire :
@echo off
pushd %1
del /q "*.*"
for /f "tokens=*" %%a in ('dir /b /ad') do rd /s /q "%%a"
popd
L’exécution du script se fait sous la forme “nom_du_fichier.bat [cible]” (par exemple del_folder.bat d:\temp\)
Analyse du script:
pushd permet de stocker le répertoire en cours pour une utilisation futur par la commande POPD, ensuite passe au répertoire spécifié dans l’argument.
%1 correspond à l’argument qui a été soumis lors de l’exécution du script.
pushd %1 stock le répertoire courant et passe au répertoire soumis lors de l’exécution du script.
del /q “*.*” supprime tout le contenu du répertoire en cours.
l’argument /q permet de supprimer sans confirmation.
for /f “tokens=*”:
la boucle for avec l’argument /f et le “token=”*” parse (segmente) le contenu de la cible, ici, le résultat de “dir /b /ad”
Ici, le token=* permet de faire une lecture ligne à ligne.
“token=*” %%a in (‘dir /b /ad’): la variable de jeton “%%a” de la boucle “for” prend la valeur du pointeur dans la liste de répertoire obtenue par la commande dir /b /ad dir /b /ad : liste les répertoire en format abrégé
A chaque itération de la commande for, le répertoire courant stocké dans la variable “%%a” est supprimé ainsi que tous les sous-répertoire.
Cette opération est effectuée par la commande “rd /s /q”
rd /s /q %%a:
Supprime le répertoire courant ainsi que tous les sous-répertoires et fichiers présents, l’argument /q permet d’executer la commande en mode silencieux.
popd: repasse le répertoire courant en celui précédemment stocké par la commande PUSHD
Batch : Effacer le contenu d’un repertoire
Effacer le contenu d’un répertoire, tant les sous-répertoire que les fichiers, peut paraitre simple.
Mais après quelques tests, il s’avère que l’opération est plus complexe que prévu.
Un script batch DOS peut le faire pour vous:
Supprimer le contenu d’un repertoire :
@echo off pushd %1 del /q "*.*" for /f "tokens=*" %%a in ('dir /b /ad') do rd /s /q "%%a" popdL’exécution du script se fait sous la forme “nom_du_fichier.bat [cible]” (par exemple del_folder.bat d:\temp\)
Analyse du script:
pushd permet de stocker le répertoire en cours pour une utilisation futur par la commande POPD, ensuite passe au répertoire spécifié dans l’argument.
%1 correspond à l’argument qui a été soumis lors de l’exécution du script.
pushd %1 stock le répertoire courant et passe au répertoire soumis lors de l’exécution du script.
del /q “*.*” supprime tout le contenu du répertoire en cours.
l’argument /q permet de supprimer sans confirmation.
for /f “tokens=*”:
la boucle for avec l’argument /f et le “token=”*” parse (segmente) le contenu de la cible, ici, le résultat de “dir /b /ad”
Ici, le token=* permet de faire une lecture ligne à ligne.
“token=*” %%a in (‘dir /b /ad’):
la variable de jeton “%%a” de la boucle “for” prend la valeur du pointeur dans la liste de répertoire obtenue par la commande dir /b /ad
dir /b /ad : liste les répertoire en format abrégé
A chaque itération de la commande for, le répertoire courant stocké dans la variable “%%a” est supprimé ainsi que tous les sous-répertoire.
Cette opération est effectuée par la commande “rd /s /q”
rd /s /q %%a:
Supprime le répertoire courant ainsi que tous les sous-répertoires et fichiers présents, l’argument /q permet d’executer la commande en mode silencieux.
popd: repasse le répertoire courant en celui précédemment stocké par la commande PUSHD