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.


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!

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.