web-dev-qa-db-fra.com

Confirmation automatique de la suppression dans PowerShell

J'exécute la commande suivante:

get-childitem C:\temp\ -exclude *.svn-base,".svn" -recurse | foreach ($_) {remove-item $_.fullname}

Ce qui m'invite très souvent comme ceci:

Confirm
The item at C:\temp\f\a\d has children and the Recurse parameter was not specified. If you continue,
all children will be removed with the item. Are you sure you want to continue?
[Y] Yes  [A] Yes to All  [N] No  [L] No to All  [S] Suspend  [?] Help (default is "Y"): 

Comment puis-je le régler automatiquement sur "A"?

31
siliconpi

Essayez d'utiliser le -Force paramètre sur Remove-Item.

22
Keith Hill

La valeur par défaut est: pas d'invite.

Vous pouvez l'activer avec -Confirm Ou le désactiver avec -Confirm:$false

Cependant, il sera toujours invite, lorsque la cible:

  • est un directeur
  • et il n'est pas vide
  • et le paramètre -Recurse n'est pas spécifié.

-Force Est également requis pour supprimer également les éléments masqués et en lecture seule, etc.

Pour résumer:

Remove-Item -Recurse -Force -Confirm:$false

... devrait couvrir tous les scénarios.

39
marsze

Ajoutez - confirmez: $ false pour supprimer la confirmation.

30
mjolinor

Ajoutez -recurse après la suppression de l'élément, le paramètre -force permet également de supprimer les fichiers cachés, par exemple:

gci C:\temp\-exclude * .svn-base, ". svn" -recurse | % {ri $ _ -force -recurse}

9
Tamas Szabo
Remove-Item .\foldertodelete -Force -Recurse
6
Alberto Perez

Vous avez juste besoin d'ajouter un /A derrière la ligne.

Exemple:

get-childitem C:\temp\ -exclude *.svn-base,".svn" -recurse | foreach ($_) {remove-item $_.fullname} /a
0
Gerald Liew