Je souhaite supprimer tous les dossiers bin et obj pour forcer la recompilation de tous les projets
Cela dépend du shell que vous préférez utiliser.
Si vous utilisez le shell cmd sous Windows, la commande suivante devrait fonctionner :
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S bin') DO RMDIR /S /Q "%%G"
FOR /F "tokens=*" %%G IN ('DIR /B /AD /S obj') DO RMDIR /S /Q "%%G"
Si vous utilisez un shell de type bash ou zsh (comme git bash ou babun sous Windows, ou la plupart des shells Linux / OS X), voici une manière beaucoup plus élégante et concise de faire ce que vous souhaitez :
find . -iname "bin" | xargs rm -rf
find . -iname "obj" | xargs rm -rf
et cela peut être réduit à une seule ligne avec un OR :
find . -iname "bin" -o -iname "obj" | xargs rm -rf
Notez que si vos répertoires ou noms de fichiers contiennent des espaces ou des guillemets, find enverra ces entrées telles quelles, ce que xargs pourrait découper en plusieurs entrées. Si votre shell les prend en charge, -print0 et -0 contournent cette limitation, ainsi les exemples ci-dessus deviennent :
find . -iname "bin" -print0 | xargs -0 rm -rf
find . -iname "obj" -print0 | xargs -0 rm -rf
et (les parenthèses sont nécessaires pour que -print0 s’applique aux deux conditions) :
find . \( -iname "bin" -o -iname "obj" \) -print0 | xargs -0 rm -rf
Si vous utilisez Powershell, vous pouvez utiliser ceci :
Get-ChildItem .\ -include bin,obj -Recurse | foreach ($_) { remove-item $_.fullname -Force -Recurse }
comme indiqué dans la réponse de Robert H ci-dessous - assurez-vous simplement de lui attribuer le mérite pour la réponse Powershell plutôt qu’à moi si vous choisissez de voter ![]()
Il serait bien sûr prudent d’exécuter la commande que vous choisissez d’abord dans un endroit sûr pour la tester !