2 votes

Supprimer un caractère des noms de fichiers dans tous les dossiers d'un dossier particulier

En utilisant un script, j'ai réussi à renommer par inadvertance tout ce qui se trouve dans le dossier personnel d'un utilisateur sur le serveur - de telle sorte que chaque fichier dans chaque dossier (et les dossiers à l'intérieur des dossiers) ont été renommés pour avoir un "$" à la fin. Tout ce que j'essayais de faire, c'était de renommer le dossier personnel de chaque utilisateur en "foldername$", pour qu'il soit caché lors de la recherche de dossiers partagés.

Pour faire court, j'ai trouvé comment supprimer le "$" de tous les fichiers d'un dossier, mais cela ne s'applique pas à tous les dossiers enfants :

get-childitem * | foreach { rename-item $_ $_.Name.Replace("$","") }

Quelqu'un sait-il comment modifier cela pour supprimer les symboles $ à la fin de chaque fichier dans chaque dossier sous un dossier ?

Merci de votre attention !

1voto

LotPings Points 6795

Essayez :

Get-ChildItem -Filter "*$" -Recurse | Rename-Item -NewName {$_.Name.Replace("$","") }
  • -Filter est beaucoup plus rapide qu'un where/foreach.
  • -Recurse parcourt les sous-dossiers
  • Rename-Item accepte les entrées par pipeline.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X