Question extraction d'un nom de fichier

Plus d'informations
il y a 11 ans 9 mois #12372 par Matthew BETTON
Bonsoir,

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.

Plus d'informations
il y a 11 ans 9 mois #12373 par Matthew BETTON
Salut Richard,

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.

Plus d'informations
il y a 11 ans 9 mois #12374 par pulx
Réponse de pulx sur le sujet Re:extraction d'un nom de fichier
il y a une grande différence entre

$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.

Plus d'informations
il y a 11 ans 9 mois #12382 par Matthew BETTON
Bonjour,

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.

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