web-dev-qa-db-fra.com

PowerShell: Comment puis-je ajouter un préfixe à tous les fichiers d'un répertoire?

Actuellement, j'utilise des cmdlets comme:

dir | rename-item -NewName {$_.name -replace "-","_"}

Mais maintenant, je dois ajouter un préfixe au nom de fichier pour tous les fichiers du répertoire.
[.____] Je ne peux pas prédire combien de temps chaque nom de fichier est (il varie), donc je ne peux pas simplement utiliser un tas de . wildcards.

J'en ai besoin pour ajouter une phrase fixe au début de chaque nom de fichier, quel que soit ce nom de fichier.

3
Giffyguy

Vous êtes assez proche.

  • -replace utilise regex et dans une expression régulière que vous ancriez au début avec un ^
  • pour un suffixe, vous pouvez également remplacer l'ancrage à la fin de la ligne avec $
  • pour éviter toute ré-itération possible du fichier renommé, joignez le premier élément du pipeline entre parenthèses.

(Get-ChildItem -File) | Rename-Item -NewName {$_.Name -replace "^","Prefix_"}
5
LotPings