Question Renommer des fichiers dans un dossier

Plus d'informations
il y a 7 mois 3 semaines #32186 par Cédric
Bonjour à tous,

Je suis nouveau sur ce forum, et je début en PowerShell.
j'ai fait un script qui renomme et ajoute ce qu'on veut au début des noms de fichiers contenus dans un dossier cible, et ce en gardant la suite des noms et extensions.

mon script fonctionne que sur env. 20 fichiers contenu dans un dossier.
mais maintenant si on met dans ce dossier environ 200 fichiers à renommer, il insert le texte au début mais à l'infini dans chaque fichiers.
et je ne comprends pas bien pourquoi.
ci-dessous mon script.

Write-host "
"
Write-host "Dossier ?"
Write-host "
"
$Souceun = read-host
$Souce = $Souceun -replace '"', ''
Write-host "
"
Write-host "ajouter au debut ?"
Write-host "
"
$Ajout = read-host

Dir "$Souce\" | rename-item -NewName {$Ajout + " "+$_.name}

Write-host "
"
Write-host "Operation terminee"
Write-host "
"
PAUSE

je me demande, si il faut pas ajouter peut être une condition pour détecter les fichiers qui ont déjà ce texte au début et ne l'ajoute plus.....
Avez-vous une idée ?
 

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 3 semaines #32190 par Philippe
salut cedric

c'est un problème de boucle récursive involontaire !!

ta ligne   Dir "$Souce\" | rename-item -NewName {$Ajout + " "+$_.name}
va lire les premier noms de fichiers (disont 100) puis les envoie dans les pipeline pour le rename
apres il lis les nom suivant et nouveau, et il considere tes renommage comme nouveau !!!
test en passent par une variable temporaire :
$nom = Dir "$Souce\"
$nom | rename-item -NewName {$Ajout + " "+$_.name}
 
Les utilisateur(s) suivant ont remercié: Cédric

Connexion ou Créer un compte pour participer à la conversation.

Plus d'informations
il y a 7 mois 3 semaines #32193 par Cédric
C'est super ça fonctionne nikel, un Grand MERCI

Connexion ou Créer un compte pour participer à la conversation.

Temps de génération de la page : 0.044 secondes
Propulsé par Kunena