Résolu
Récupérer une partie du chemin d'un répertoire
- Muther
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 3 ans 3 mois - il y a 3 ans 3 mois #30246
par Muther
Récupérer une partie du chemin d'un répertoire a été créé par Muther
Bonjour,
Cela fait plusieurs jours que je sèche pour extraire le nom du dernier répertoire d'un chemin afin de créer des target DFS en powershell.
Je m'explique, à partir d'un export groupes.csv, je récupère le chemin des répertoires bureautiques de mon administration :
Je dois récupérer pour chaque ligne le nom du dernier répertoire, exemple pour la ligne 1 c'est G1 pour la ligne 3 c'est G1-1, etc...
Lorsque j'utilise cette regex :
Je récupère :
D'une part il y toujours "\" dans le nom récupéré mais en plus ça ne fonctionne pas dès qu'il y a un symbole dans le nom du chemin.
Je serai preneur de conseils pour finaliser mon regex
Merci d'avance
Cela fait plusieurs jours que je sèche pour extraire le nom du dernier répertoire d'un chemin afin de créer des target DFS en powershell.
Je m'explique, à partir d'un export groupes.csv, je récupère le chemin des répertoires bureautiques de mon administration :
"cleper";"chmesp"
"DF001EX00001";"D:\donnees\uti\reserv\G1"
"DF001EX00002";"D:\donnees\uti\reserv\G2"
"DF001EX00001";"D:\donnees\uti\reserv\G1\G1-1"
"DF001EX00003";"D:\donnees\uti\reserv\G3"
"DF001EX00001";"D:\donnees\uti\reserv\G1\G1-1\G1-1-1"
"DF001EX00004";"D:\donnees\uti\reserv\G4"
Je dois récupérer pour chaque ligne le nom du dernier répertoire, exemple pour la ligne 1 c'est G1 pour la ligne 3 c'est G1-1, etc...
Lorsque j'utilise cette regex :
$re =[regex]"\\\w+$"; import-csv C:\Temp\groupes.csv -Delimiter ";" | select cleper, chmesp, @{Name="partage";Expression={$re.matches($_.chmesp)[0] } }
Je récupère :
cleper chmesp partage
------ ------ -------
DF001EX00001 D:\donnees\uti\reserv\G1 \G1
DF001EX00002 D:\donnees\uti\reserv\G2 \G2
DF001EX00001 D:\donnees\uti\reserv\G1\G1-1
DF001EX00003 D:\donnees\uti\reserv\G3 \G3
DF001EX00001 D:\donnees\uti\reserv\G1\G1-1\G1-1-1
DF001EX00004 D:\donnees\uti\reserv\G4 \G4
D'une part il y toujours "\" dans le nom récupéré mais en plus ça ne fonctionne pas dès qu'il y a un symbole dans le nom du chemin.
Je serai preneur de conseils pour finaliser mon regex
Merci d'avance
Dernière édition: il y a 3 ans 3 mois par Arnaud Petitjean. Raison: Remise en forme du code
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 3 ans 3 mois - il y a 3 ans 3 mois #30248
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Récupérer une partie du chemin d'un répertoire
Hello Muther !
Question intéressante pour un 1er post .
Les admins Windows n'étant en général pas des cracks en Regex contrairement aux admins Linux, moi inclus, je vais te proposer une autre solution.
On va éclater ta chaine de caractères en prenant comme séparateur le backslash. Cela va nous retourner un objet de type tableau (de chaînes) et on va prendre le dernier élément du tableau.
Soit par exemple :
Donc au final ça pourrait donner :
Question intéressante pour un 1er post .
Les admins Windows n'étant en général pas des cracks en Regex contrairement aux admins Linux, moi inclus, je vais te proposer une autre solution.
On va éclater ta chaine de caractères en prenant comme séparateur le backslash. Cela va nous retourner un objet de type tableau (de chaînes) et on va prendre le dernier élément du tableau.
Soit par exemple :
"D:\donnees\uti\reserv\G1\G1-1\G1-1-1" -split ('\\') | Select-Object -Last 1
G1-1-1
Donc au final ça pourrait donner :
Import-Csv C:\Temp\groupes.csv -Delimiter ";" |
Select-Object cleper, chmesp, @{Name="partage";Expression={$_.chmesp -split ('\\') | Select-Object -Last 1 } }
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Dernière édition: il y a 3 ans 3 mois par Arnaud Petitjean.
Les utilisateur(s) suivant ont remercié: Muther
Connexion ou Créer un compte pour participer à la conversation.
- Muther
- Auteur du sujet
- Hors Ligne
- Nouveau membre
Réduire
Plus d'informations
- Messages : 5
- Remerciements reçus 0
il y a 3 ans 3 mois #30249
par Muther
Réponse de Muther sur le sujet Récupérer une partie du chemin d'un répertoire
Je ne connaissais pas cette possibilité, ce n'est pas habituel mais ça fonctionne.
Merci du coup de main !
Merci du coup de main !
Connexion ou Créer un compte pour participer à la conversation.
- Arnaud Petitjean
- Hors Ligne
- Modérateur
il y a 3 ans 3 mois #30253
par Arnaud Petitjean
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Réponse de Arnaud Petitjean sur le sujet Récupérer une partie du chemin d'un répertoire
Super !
Je passe le sujet en "Résolu".
Je passe le sujet en "Résolu".
MVP PowerShell et créateur de ce magnifique forum
Auteur de 6 livres PowerShell aux éditions ENI
Fondateur de la société Start-Scripting
Besoin d'une formation PowerShell ?
Connexion ou Créer un compte pour participer à la conversation.
Temps de génération de la page : 0.127 secondes
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- Récupérer une partie du chemin d'un répertoire