PowerShell Rename-Item est mise en boucle jusqu'à ce que le fichier atteint la limite de caractères

voix
1

Je dois renommer des milliers de dossiers et que vous souhaitez utiliser un script qui ajoute « Old » devant l'ancien nom.

J'ai essayé ce script

Get-ChildItem | rename-item -NewName { Old+ $_.Name }

Il fonctionne même quand je l'essayer dans certains petits dossiers de test pour éviter de gâcher mon dossier mais unfortunally ça fonctionne là-bas, mais pas dans mon dossier principal. Dans mon dossier principal de cette commande en boucle jusqu'à ce qu'il atteigne la limite de caractères et des arrêts.

Ressemble à ça:

Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Old Zimmer.

je l'ai trouvé en ligne celui-ci aussi, mais elle produit le même résultat

get-childitem | % { rename-item $_ Old $_}

Est-ce un bug ou suis-je tout simplement stupide?

Créé 19/12/2018 à 14:13
source utilisateur
Dans d'autres langues...                            


1 réponses

voix
1

Pour renommer les dossiers dans un chemin donné par les préfixant avec « Old », cela fonctionne pour moi:

$path = "<PATH TO YOUR MAIN FOLDER>"
Get-ChildItem -Path $path -Directory | Rename-Item -NewName { "Old$($_.Name)" }

# For PowerShell version less than 3.0
# Get-ChildItem -Path $path | Where-Object { $_.PSIsContainer} | Rename-Item -NewName { "Old$($_.Name)" }

(en ne définissant pas le paramètre -Path, l' Get-ChildItemapplet de commande utilise l'emplacement par défaut qui est le répertoire en cours .ou $pwd)

Créé 19/12/2018 à 14:50
source utilisateur

Cookies help us deliver our services. By using our services, you agree to our use of cookies. Learn more