Question
comparer les nom des fichiers d'un repertoire
- darphboubou
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 135
- Remerciements reçus 0
il y a 13 ans 7 mois #12905
par darphboubou
comparer les nom des fichiers d'un repertoire a été créé par darphboubou
Bonjour,
Voila suite a un script j’obtiens plusieurs fichiers csv regroupé dans un folder
ensuite j'aimerai merger les fichiers csv mais seulement ceux qui on une partit du nom en commun
dans le folder c:\toto\csv
j'ai les csv suivant
toto.csv
toto pri.csv
tata.csv
tata.pri.csv
le code ci dessous me permet de concaténer tous les csv du folder
or je veux concaténer toto.csv avec toto pri.csv et idem pour tata
Quelqu'un peux t-il m'aider (les fichiers csv on la même structure)
$CsvFiles = Get-ChildItem -Path \"c:\toto\csv\*.csv\"
# Conteneur pour le contenu des fichiers csv
$Content = @()
# Traiter chaque fichier
foreach ($csv in $csvFiles) {
$Content+=Import-Csv $csv
}
$Content | Export-Csv \"c:\toto\merge\$nomGrp.csv\"
Voila suite a un script j’obtiens plusieurs fichiers csv regroupé dans un folder
ensuite j'aimerai merger les fichiers csv mais seulement ceux qui on une partit du nom en commun
dans le folder c:\toto\csv
j'ai les csv suivant
toto.csv
toto pri.csv
tata.csv
tata.pri.csv
le code ci dessous me permet de concaténer tous les csv du folder
or je veux concaténer toto.csv avec toto pri.csv et idem pour tata
Quelqu'un peux t-il m'aider (les fichiers csv on la même structure)
$CsvFiles = Get-ChildItem -Path \"c:\toto\csv\*.csv\"
# Conteneur pour le contenu des fichiers csv
$Content = @()
# Traiter chaque fichier
foreach ($csv in $csvFiles) {
$Content+=Import-Csv $csv
}
$Content | Export-Csv \"c:\toto\merge\$nomGrp.csv\"
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 7 mois #12906
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:comparer les nom des fichiers d'un repertoire
Salut,
de ce que j'ai compris, une probable solution :
Je ne connais pas ton traitement, mais j'ai comme l'impression que ton problème est plutot liè à la conception d'origine :
darphboubou écrit:
Bref, dans ta demande il y a un truc qui m'échappe.
de ce que j'ai compris, une probable solution :
Je te laisse factoriser$Toto=@(
'toto.csv',
'toto pri.csv'
)
$Tata=@(
'tata.csv',
'tata.pri.csv'
)
#schématiquement
$Toto|Import-csv|Export-CSV LesTotos.csv
$Tata|Import-csv|Export-CSV LesTatas.csv
Je ne connais pas ton traitement, mais j'ai comme l'impression que ton problème est plutot liè à la conception d'origine :
darphboubou écrit:
darphboubou écrit:Voila suite a un script j’obtiens plusieurs fichiers csv regroupé dans un folder
Je ne rencontre pas ce type de pb, car dans mes traitements je gére une ou des collections, et à partir de ces collections je génére un ou des fichiers structurés.(les fichiers csv ont la même structure)
Bref, dans ta demande il y a un truc qui m'échappe.
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
- darphboubou
- Auteur du sujet
- Hors Ligne
- Membre premium
-
Réduire
Plus d'informations
- Messages : 135
- Remerciements reçus 0
il y a 13 ans 7 mois #12910
par darphboubou
Réponse de darphboubou sur le sujet Re:comparer les nom des fichiers d'un repertoire
hello,
en gros j'ai deux domaine.
donc quand je fais un extract des groupes d'accès, je trouve des nom de groupe de ce genre
sur domaine net
papa.net -> le groupe AD se nomme du coup grp-papa_rw
papa-fils.net -> le groupe AD se nomme du grp-coup-fils_rw
papa-fils-petit.net -> le groupe AD se nomme du grp-coup-fils-petit_rw
sur domaine pri
papa.pri -> le groupe AD se nomme du coup grp-papa_rw
papa-fils.pri -> le groupe AD se nomme du grp-coup-fils_rw
papa-fils-petit.pri -> le groupe AD se nomme du grp-coup-fils-petit_rw
Donc apres une moulinette dans mon script.
J'obtiens un fichier csv pour chaques groupe sur les different domaines
grp-papa_rw.csv
grp-coup-fils_rw.csv
grp-coup-fils-petit_rw.csv
et
grp-papa_rw-pri.csv
grp-coup-fils_rw-pri.csv
grp-coup-fils-petit_rw-pri.csv
c'est fichier csv sont regroupé dans un folder nommé csv.
j'aimerai donc fusionner
grp-papa_rw.csv avec grp-papa_rw-pri.csv
grp-coup-fils_rw.csv avec grp-coup-fils_rw-pri.csv
or pour le moment tout mes fichier contenu dans le folder CSV sont fusionner en un seul
en gros j'aimerai trier par nom
en gros j'ai deux domaine.
donc quand je fais un extract des groupes d'accès, je trouve des nom de groupe de ce genre
sur domaine net
papa.net -> le groupe AD se nomme du coup grp-papa_rw
papa-fils.net -> le groupe AD se nomme du grp-coup-fils_rw
papa-fils-petit.net -> le groupe AD se nomme du grp-coup-fils-petit_rw
sur domaine pri
papa.pri -> le groupe AD se nomme du coup grp-papa_rw
papa-fils.pri -> le groupe AD se nomme du grp-coup-fils_rw
papa-fils-petit.pri -> le groupe AD se nomme du grp-coup-fils-petit_rw
Donc apres une moulinette dans mon script.
J'obtiens un fichier csv pour chaques groupe sur les different domaines
grp-papa_rw.csv
grp-coup-fils_rw.csv
grp-coup-fils-petit_rw.csv
et
grp-papa_rw-pri.csv
grp-coup-fils_rw-pri.csv
grp-coup-fils-petit_rw-pri.csv
c'est fichier csv sont regroupé dans un folder nommé csv.
j'aimerai donc fusionner
grp-papa_rw.csv avec grp-papa_rw-pri.csv
grp-coup-fils_rw.csv avec grp-coup-fils_rw-pri.csv
or pour le moment tout mes fichier contenu dans le folder CSV sont fusionner en un seul
en gros j'aimerai trier par nom
Connexion ou Créer un compte pour participer à la conversation.
- xyz
- Hors Ligne
- Modérateur
-
Réduire
Plus d'informations
- Messages : 6311
- Remerciements reçus 69
il y a 13 ans 7 mois #12911
par xyz
Tutoriels PowerShell
Réponse de xyz sur le sujet Re:comparer les nom des fichiers d'un repertoire
darphboubou écrit:
De mon côté j'utilise ce type d'approche, en ayant au préalable constitué une seule collection d'objets sur lesquels j'ajoute différentes propriétés utilisées par les filtres :
[code:1]
# Fichier de logs des différents traitements
# Nom de fichier et filtre des objets concernés
$Logs=@{
# le filtre est un scriptblock à associer au cmdlet Where-Object
Pere=@{Name=\"grp-papa_rw\";Filtre={ $_.GroupName -match 'papa\.(Net|Pri)'} };
Fils=@{Name=\"grp-coup-fils_rw\";Filtre={ $_.GroupName -match 'papa-fils\.(Net|Pri)'}};
PetiFils=@{Name=\"grp-coup-fils-petit_rw\";Filtre={$_.GroupName -match 'papa-fils-petit\.(Net|Pri)'}}
};
$Logs.GetEnumerator()|
Foreach-Object{
$Key=$_.Name
Write-Host \"Traite $Key\"
$_} |
Foreach-Object{
$_.Value|
Foreach {
$Fname=$_.Name
$Filtre=$_.Filtre
Write-Host (\"`tNom de fichier {0} ,filtre à appliquer '{1}'\" -F $FName,$Filtre)
# $GlobalDatasCollection|
# Where-Object $Filtre|
# Export-CSV $FName -Delimiter \";\" -NoTypeInformation
}
}
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 13/10/12 14:43
Tu veux dire regrouper par nom, dans ce cas il faut une régle de regoupement associé au code de mon premier post.en gros j'aimerai trier par nom
De mon côté j'utilise ce type d'approche, en ayant au préalable constitué une seule collection d'objets sur lesquels j'ajoute différentes propriétés utilisées par les filtres :
[code:1]
# Fichier de logs des différents traitements
# Nom de fichier et filtre des objets concernés
$Logs=@{
# le filtre est un scriptblock à associer au cmdlet Where-Object
Pere=@{Name=\"grp-papa_rw\";Filtre={ $_.GroupName -match 'papa\.(Net|Pri)'} };
Fils=@{Name=\"grp-coup-fils_rw\";Filtre={ $_.GroupName -match 'papa-fils\.(Net|Pri)'}};
PetiFils=@{Name=\"grp-coup-fils-petit_rw\";Filtre={$_.GroupName -match 'papa-fils-petit\.(Net|Pri)'}}
};
$Logs.GetEnumerator()|
Foreach-Object{
$Key=$_.Name
Write-Host \"Traite $Key\"
$_} |
Foreach-Object{
$_.Value|
Foreach {
$Fname=$_.Name
$Filtre=$_.Filtre
Write-Host (\"`tNom de fichier {0} ,filtre à appliquer '{1}'\" -F $FName,$Filtre)
# $GlobalDatasCollection|
# Where-Object $Filtre|
# Export-CSV $FName -Delimiter \";\" -NoTypeInformation
}
}
[/code:1]<br><br>Message édité par: Laurent Dardenne, à: 13/10/12 14:43
Tutoriels PowerShell
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.039 secondes
- Vous êtes ici :
-
Accueil
-
forum
-
PowerShell
-
Entraide pour les débutants
- comparer les nom des fichiers d'un repertoire