Bonjour,
Je voudrais pouvoir obtenir la liste des fichiers contenus dans un dossier, avec un filtre sur l'extension (exemple .txt) et sur une partie du nom des fichiers (par exemple les 4 caractères du nom à partir du 19ème = à 1104)
la commande ci-dessous fonctionne
$fichiers=Get-ChildItem -Path "c:\tmp" | Where-Object -FilterScript {($_.Name -match '.txt$')} | Where-Object -FilterScript {($_.Name.substring(18,4) -eq '1104')}
mais le pb est que dans ce dossier se trouvent aussi des fichiers dont le nom est plus court
et du coup j'obtiens l'erreur
"Exception lors de l'appel de «*Substring*» avec «*2*» argument(s)*: «*startIndex ne peut pas être supérieur à la longueur de la chaîne."
Comment puis-je faire ?
Et question subsidiaire : comment faire, de plus, pour trier (croissant) la liste obtenue selon une partie du nom des fichiers (exemple de 23 à 8) ?
Merci ++
Exemple :
020544.jpg
024005.jpg
029734.jpg
033589.jpg
038163.jpg
042432.jpg
OU-20200606165009-1316-34163820.dat
OU-20200606165009-1317-34163810.txt
OU-20200606165011-1318-34163824.dat
OU-20200606165011-1317-34163824.txt
OU-20200606165013-1104-34163838.dat
OU-20200606165013-1104-34163829.txt
OU-20200606165015-1208-34163841.dat
OU-20200606165015-1208-34163831.txt
OU-20200606165015-2163-34163840.dat
OU-20200606165015-1104-34163830.txt
-->
OU-20200606165013-1104-34163829.txt
OU-20200606165015-1104-34163830.txt
Partager