Question
Renommer une série de fichier
- wackou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 12 ans 3 mois #16556
par wackou
Renommer une série de fichier a été créé par wackou
Bonjour,
J'ai une série de fichier en .hist de cette forme :
[code:1]{B7616B3E-8825-414F-9A4F-E3A208A460BB}.hist[/code:1]
A l'intérieur, il y a une chaîne de caractère comme ceci : (pas présente dans tous les fichiers, si non présent, mettre vidéo ou autre)
[code:1]Conversation with toto[/code:1]
J'aimerais donc renommer ces fichiers de cette forme :
[code:1]Conversation_with_toto_11-12-2013.html[/code:1]
Pour cela j'ai déjà quelques choses :
[code:1]$file=Get-ChildItem -name -filter *.hist | find \"Conversation with \" * | where { $_ -ne \"$null\" }
$file -Replace \"
\",\"\"[/code:1]
Cela me renvoie une liste de cette forme :
[code:1]{DABDF07C-AA99-41E6-AE36-CCB7EB4DDC2D}.HIST
Conversation with toto
{DB370FA3-26BC-465F-80BD-847C4FF105D9}.HIST
{DDF89DFF-6462-4987-9669-6B57006D0F74}.HIST
Conversation with toto
{E2BDD72C-55D2-4CE0-8A23-8C33FE663677}.HIST
Conversation with toto
{EEDB28C3-AF82-4DF8-872B-6A3B51233397}.HIST[/code:1]
Voilà actuellement où j'en suis, j'essais maintenant de manipuler cette chaîne de caractère pour qu'elle ressemble au final à cela :
[code:1]NAME,CONV
{108310FC-BCAF-465B-A1D1-8C0F7069D1A5}.HIST,Conversation_with_toto_11-12-2013.html
{21315907-EBEA-44B9-92D7-A5CFA9D4688A}.HIST,other
{23EB7736-B50E-437E-AC76-BA8A6CD01692}.HIST,Conversation_with_toto_11-12-2013.html
{32DD15CD-1394-45E4-A403-CC6E2716F1C0}.HIST,other[/code:1]
Mais je bloque completement et j'ai besoin de votre aide
Pour ensuite faire :
[code:1]import-csv files_hist.csv |foreach-object {rename-item $_.NAME $_.CONV}[/code:1]
et renommer mes fichiers
Merci d'avance
J'ai une série de fichier en .hist de cette forme :
[code:1]{B7616B3E-8825-414F-9A4F-E3A208A460BB}.hist[/code:1]
A l'intérieur, il y a une chaîne de caractère comme ceci : (pas présente dans tous les fichiers, si non présent, mettre vidéo ou autre)
[code:1]Conversation with toto[/code:1]
J'aimerais donc renommer ces fichiers de cette forme :
[code:1]Conversation_with_toto_11-12-2013.html[/code:1]
Pour cela j'ai déjà quelques choses :
[code:1]$file=Get-ChildItem -name -filter *.hist | find \"Conversation with \" * | where { $_ -ne \"$null\" }
$file -Replace \"
\",\"\"[/code:1]
Cela me renvoie une liste de cette forme :
[code:1]{DABDF07C-AA99-41E6-AE36-CCB7EB4DDC2D}.HIST
Conversation with toto
{DB370FA3-26BC-465F-80BD-847C4FF105D9}.HIST
{DDF89DFF-6462-4987-9669-6B57006D0F74}.HIST
Conversation with toto
{E2BDD72C-55D2-4CE0-8A23-8C33FE663677}.HIST
Conversation with toto
{EEDB28C3-AF82-4DF8-872B-6A3B51233397}.HIST[/code:1]
Voilà actuellement où j'en suis, j'essais maintenant de manipuler cette chaîne de caractère pour qu'elle ressemble au final à cela :
[code:1]NAME,CONV
{108310FC-BCAF-465B-A1D1-8C0F7069D1A5}.HIST,Conversation_with_toto_11-12-2013.html
{21315907-EBEA-44B9-92D7-A5CFA9D4688A}.HIST,other
{23EB7736-B50E-437E-AC76-BA8A6CD01692}.HIST,Conversation_with_toto_11-12-2013.html
{32DD15CD-1394-45E4-A403-CC6E2716F1C0}.HIST,other[/code:1]
Mais je bloque completement et j'ai besoin de votre aide
Pour ensuite faire :
[code:1]import-csv files_hist.csv |foreach-object {rename-item $_.NAME $_.CONV}[/code:1]
et renommer mes fichiers
Merci d'avance
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 3 mois #16558
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Renommer une série de fichier
Salut,
pourquoi utiliser un fichier csv ?
pourquoi utiliser un fichier csv ?
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- wackou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 12 ans 3 mois #16561
par wackou
Réponse de wackou sur le sujet Re:Renommer une série de fichier
parce que je pense que c'est plus \"simple\" pour gérer mes fichiers et les renommer correctement.
Mais si vous avez une idée
Mais si vous avez une idée
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 3 mois #16563
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Renommer une série de fichier
wackou écrit:
Une piste :
[code:1]
@'
test
Conversation with toto
test
'@ > 'c:\temp\{B7616B3E-8825-414F-9A4F-E3A208A460BB}.hist'
@'
test
other
test
'@ > 'c:\temp\{21315907-EBEA-44B9-92D7-A5CFA9D4688A}.HIST'
@'
test
Conversation with toto
test
'@ > 'c:\temp\{23EB7736-B50E-437E-AC76-BA8A6CD01692}.HIST'
@'
test
truc
test
'@ > 'c:\temp\{32DD15CD-1394-45E4-A403-CC6E2716F1C0}.HIST'
$SearchStr='Conversation with toto'
$SearchName=$SearchStr -replace ' ','_'
$FormatDate='{2:dd-MM-yyyy}'
$FormatName=\"{0}\{1}_$FormatDate.html\"
$Date=Get-Date
$sbChangeExt={
$FormatName -F ([System.IO.Path]::GetDirectoryName($_.Path)),$SearchName,$Date
}
Select-String -Path 'C:\Temp\*.HIST' -Pattern $SearchStr|
Rename-item -NewName $sbChangeExt -Whatif -Verbose
[/code:1]
Il est possible de construire un 'pattern de commande', vérifie déjà si cela t'aide.
je supposais que c'était une liste de correspondance.parce que je pense que c'est plus \"simple\" pour gérer mes fichiers et les renommer correctement.
Une piste :
[code:1]
@'
test
Conversation with toto
test
'@ > 'c:\temp\{B7616B3E-8825-414F-9A4F-E3A208A460BB}.hist'
@'
test
other
test
'@ > 'c:\temp\{21315907-EBEA-44B9-92D7-A5CFA9D4688A}.HIST'
@'
test
Conversation with toto
test
'@ > 'c:\temp\{23EB7736-B50E-437E-AC76-BA8A6CD01692}.HIST'
@'
test
truc
test
'@ > 'c:\temp\{32DD15CD-1394-45E4-A403-CC6E2716F1C0}.HIST'
$SearchStr='Conversation with toto'
$SearchName=$SearchStr -replace ' ','_'
$FormatDate='{2:dd-MM-yyyy}'
$FormatName=\"{0}\{1}_$FormatDate.html\"
$Date=Get-Date
$sbChangeExt={
$FormatName -F ([System.IO.Path]::GetDirectoryName($_.Path)),$SearchName,$Date
}
Select-String -Path 'C:\Temp\*.HIST' -Pattern $SearchStr|
Rename-item -NewName $sbChangeExt -Whatif -Verbose
[/code:1]
Il est possible de construire un 'pattern de commande', vérifie déjà si cela t'aide.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- wackou
- Auteur du sujet
- Hors Ligne
- Nouveau membre
-
Réduire
Plus d'informations
- Messages : 7
- Remerciements reçus 0
il y a 12 ans 3 mois #16570
par wackou
Réponse de wackou sur le sujet Re:Renommer une série de fichier
En faite, je pensait plus à faire une regex qui \"match\" les \"conversations with\" et recopier la ligne à la fin de la ligne precedente
Connexion ou Créer un compte pour participer à la conversation.
- Laurent Dardenne
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 68
il y a 12 ans 3 mois #16571
par Laurent Dardenne
Tutoriels PowerShell
Réponse de Laurent Dardenne sur le sujet Re:Renommer une série de fichier
Une correction :
[code:1]
$SearchStr='Conversation with toto'
$SearchName=$SearchStr -replace ' ','_'
$FormatDate='{2:dd-MM-yyyy}'
$FormatName=\"{0}\{1}_$FormatDate-{3}.html\"
$Date=Get-Date
$sbChangeExt={
$FormatName -F ([System.IO.Path]::GetDirectoryName($_.Path)),$SearchName,$Date,$Count
}
$Files=Select-String -Path 'C:\Temp\*.HIST' -Pattern $SearchStr
$Count=0
$Files|Foreach {$Count++;$_}|Rename-item -NewName $sbChangeExt -Whatif -Verbose
[/code:1]
Deux pb, le premier Select-String ne libère pas le fichier courant et le second est que ta régle, en tout cas tes exemples, ne peuvent fonctionner, car il y a duplication de nom de fichier.
[code:1]
$SearchStr='Conversation with toto'
$SearchName=$SearchStr -replace ' ','_'
$FormatDate='{2:dd-MM-yyyy}'
$FormatName=\"{0}\{1}_$FormatDate-{3}.html\"
$Date=Get-Date
$sbChangeExt={
$FormatName -F ([System.IO.Path]::GetDirectoryName($_.Path)),$SearchName,$Date,$Count
}
$Files=Select-String -Path 'C:\Temp\*.HIST' -Pattern $SearchStr
$Count=0
$Files|Foreach {$Count++;$_}|Rename-item -NewName $sbChangeExt -Whatif -Verbose
[/code:1]
Deux pb, le premier Select-String ne libère pas le fichier courant et le second est que ta régle, en tout cas tes exemples, ne peuvent fonctionner, car il y a duplication de nom de fichier.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.053 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- Renommer une série de fichier