Question Manipulation Fichier et REGEX

Plus d'informations
il y a 12 ans 10 mois #14789 par Yassin
Bonjour à tous,étant donné que je ne maitrise pas bien le powershell,j'aimerais savoir si vous auriez une solution.
J'aimerais créer un petit script simple qui irait lire le nom de plusieurs fichiers et les renommerait de façon uniforme.
Par exemple j'ai un dossier où sont stockés mes épisodes d'une série, 1 fichier se nomme \"HIMYM 1.mp4\" ,l'autre \"How I Met Your Mother 2\",l'autre \"How.I.Met 3\".
J'aimerais tous les nommer de façon uniforme selon \" How I Met Your Mother [0-9]\"se lon leur numéro,donc créer une regex qui irait prendre seulement l'entier dans le nom du fichier et le renommerait en fonction de cet entier.
Merci d'avance pour vos réponses.

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

Plus d'informations
il y a 12 ans 10 mois #14800 par Philippe
Réponse de Philippe sur le sujet Re:Manipulation Fichier et REGEX
salut NeoPegasus

je te donne la partie regex (c'est une des methodes possible)
je part sur le principe que tous tes fichiers ont une extention (.mp4,.avi,...).
j'ai essayé de découper chaque étape pour que tu comprenne :

sur l'exemple \"How.I.Met 3.avi\"

[code:1]# je decoupe le nom du fichier avec les points
$t = $s.split(\".\"«») # (soit [How] [Met 3] [avi])
# je pointe sur l'avant dernier element (4 elements moins l'extention, et encore moins un car \"un tableau commence par zero\")
$p = ($t).Length - 2 (soit [Met 3])
# j'isole l'entier qui ce trouve a la fin
$t[$p] -match \"(\d*$)\"
# le resultat est ici
$matches[1]

# je recree le titre !!!!
$titre = \"How I Met Your Mother \" + $matches[1][/code:1]

je te laise faire la liste des fichiers et la boucle, pour le moment ;)
tu trouvera des exemples partout sur le net
mais si tu a besoin d'aide ....<br><br>Message édité par: 6ratgus, à: 7/05/13 11:08

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

Plus d'informations
il y a 12 ans 10 mois #14804 par Philippe
Réponse de Philippe sur le sujet Re:Manipulation Fichier et REGEX
Bon j'ai pris quelque minutes pour ces quelques lignes :whistle: :

[code:1]$newtitre = \&quot;How I Met Your Mother \&quot;
Get-ChildItem -Path '.\temp' | Foreach {
$ok = (($_.name).split(\&quot;.\&quot;«»))[(($_.name).split(\&quot;.\&quot;«»)).Length - 2] -match \&quot;(\d+$)\&quot;
if ($ok)
{
$titre = $newtitre + $matches[1] + $_.Extension
Write-Host $_.name \&quot; --&gt; \&quot; $titre
rename-item $_.fullname -newname $titre
}
else
{
Write-Host \&quot;+++ erreur de format de nom de fichier : $_\&quot;
}
}
[/code:1]

il te reste plus beaucoup a faire pour qu'il s'adapte a toutes les series que tu aime !!! ;) :P

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

Plus d'informations
il y a 12 ans 10 mois #14805 par Philippe
Réponse de Philippe sur le sujet Re:Manipulation Fichier et REGEX
le meme sans les splits[code:1]$newtitre = \&quot;How I Met Your Mother \&quot;
Get-ChildItem -Path '.\temp' | Foreach {
$ok = $_.basename -match \&quot;(\d+$)\&quot;
if ($ok)
{
$titre = $newtitre + $matches[1] + $_.Extension
Write-Host $_.name \&quot; --&gt; \&quot; $titre
rename-item $_.fullname -newname $titre
}
else
{
Write-Host \&quot;+++ erreur de format de nom de fichier : $_\&quot;
}
}[/code:1]

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

Plus d'informations
il y a 12 ans 10 mois #14817 par Yassin
Réponse de Yassin sur le sujet Re:Manipulation Fichier et REGEX
Super vos scripts sont parfaits!Il suffit de réadapter le split'(soit avec un point soit un espace)et le length et ça passe.Par contre les fichiers commençant par le caractère [ sont impossible à renommer.En effet,il me sort cette erreur \&quot;Rename-Item : Impossible de renommer l'élément situé à l'emplacement « C\[test]3.mp4 »
Auriez-vous une idée?

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

Plus d'informations
il y a 12 ans 10 mois #14826 par SiSMik
Réponse de SiSMik sur le sujet Re:Manipulation Fichier et REGEX
Salut,

Essayes

[code:1]rename-item -LiteralPath $_.fullname -newname $titre[/code:1]

@+

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

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