Question
extraction d'un nom de fichier
- Matthew BETTON
- Hors Ligne
- Membre platinium
- Messages : 968
- Remerciements reçus 0
pulx3369 écrit:
oui c'est normal
le nom du fichier est écrit comme ça
PC1.txt
et dans le fichier le nom est répété dans le fichier on trouve
PC1
Une solution :
[code:1]$Liste = Get-ChildItem C:\Repertoire -filter *.txt
$ListeOrdinateurs = @()
Foreach($Fichier in $Liste){
$ListeOrdinateurs += $Fichier.BaseName
}
$ListeOrdinateurs[/code:1]
... plus simplement :
[code:1]$ListeOrdinateurs = Get-ChildItem C:\Repertoire -filter *.txt | ForEach-Object{$_.BaseName}[/code:1]
Puisque le nom du fichier correspond au nom de la machine, pas besoin d'aller lire le contenu de chaque fichier.
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
- Messages : 968
- Remerciements reçus 0
Richard Lazaro écrit:
Bonjour,
Ce que je ne comprend pas, c'est que là tu travaille avec le contenu du fichier ?
pour éliminer l'extension, il suffit de faire un replace avec une expression régulire :
[code:1]
$var = 'toto.txt'
$computer = $var -replace '\.[^\.]*$',''
[/code:1]
Bien Cordialement,
Richard Lazaro.
PS : Salut Yves
J'adore les regex
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- pulx
- Auteur du sujet
- Hors Ligne
- Membre junior
- Messages : 31
- Remerciements reçus 0
$ListeOrdinateurs = Get-ChildItem C:\Repertoire -filter *.txt | ForEach-Object{$_.BaseName}
et
$listeordinateur = get-content -path C:UsersDesktopmonrep*.txt
Connexion ou Créer un compte pour participer à la conversation.
- Matthew BETTON
- Hors Ligne
- Membre platinium
- Messages : 968
- Remerciements reçus 0
Penses à utiliser les balises de Code (cf bouton \"Code\", dans la barre d'outils, lors de la création ou de l'édition d'un message). Cela notamment de conserver les \"\\" ...
Un exemple de ce que cela peut donner :
il y a une grande différence entre
[code:1]$ListeOrdinateurs = Get-ChildItem C:Repertoire -filter *.txt | ForEach-Object{$_.BaseName}
[/code:1]
et
[code:1]$listeordinateur = get-content -path C:UsersDesktopmonrep*.txt [/code:1]
Oui il y a une différence entre ces 2 commandes.
Dans le premier cas, il y a récupération du contenu de tous les fichiers .txt.
Get-Help Get-Content -Full
Dans le second cas il y a énumération des fichiers .txt et c'est le nom des fichiers qui est récupéré.
Get-Help Get-ChildItem -Full
Dans ton cas précis, cela te permet de récupérer finalement la même chose (puisque le fichier contient uniquement le nom du fichier, c'est à dire le nom de la machine).
Dans d'autres contextes, cela ne serait pas le cas ....
Il est donc peut être important de comprendre les 2 solutions.
@ +
Matthew
Connexion ou Créer un compte pour participer à la conversation.
- Vous êtes ici :
- Accueil
- forum
- PowerShell
- Entraide pour les débutants
- extraction d'un nom de fichier