Powershell - trouve les noms de fichiers dans une chaîne lorsque leurs noms sont inconnus - seule leur extension est connue «.jpg»?

2

À l'aide de PowerShell, comment puis-je obtenir une liste de noms de fichiers dans une chaîne si je ne connais que l'extension?

Exemple simplifié:

C:\> $e = "CN=Ken Myer world.jpg more text."
C:\> $f = $e.IndexOf(".jpg")
C:\> write-host $f
17

Comment puis-je obtenir le reste du nom de fichier inconnu? (En supposant un nom de fichier de 5 caractères), je ne peux pas connecter un nombre négatif à $ e.Substring (17, -5,9) <- ne fonctionne pas.

utilisateur1256194
la source
RegEx vous aidera ici, mais vous devez trouver un motif récurrent à assortir. Par exemple, les noms de fichiers peuvent avoir des espaces mais se terminent évidemment par ".jpg". S'ils ont tous un "=" devant eux, vous pouvez facilement créer un RegEx approprié. Consultez les pages suivantes pour obtenir de l'aide: 1 , 2 , 3 .
Karan

Réponses:

0

$ regex = '\ b [A-Za-z0-9 ._% - +] +. jpg'

chaîne de sélection -Path $ DL_file -Pattern $ regex -AllMatches | % {$ .Matches} | % {$ .Value}> $ CurrentFileNames

Semble travailler pour ma situation.

Merci!

utilisateur1256194
la source