Extraction d'une liste de fichiers qui contiennent un/des caractère spéciaux.

shellxy - Modifié le 9 juil. 2021 à 14:29
 Shellxy - 28 juil. 2021 à 17:16
Bonjour à tous,
Préparant un projet de migration (service microsoft ondrive) je vais migrer les données utilisateurs.
cependant certain caractères spéciaux que contiennent le nom des fichiers sont bloquants.
J'aimerais donc créé un fichier listant les "fichiers ou dossiers" qui contiennent les fameux caractères non autorisé pour les modifier avec l'utilisateur final.
voici les caractères : ~ "# % & * : < > ? / \ { | }.
ainsi que l'espace en debut et en fin de chaine.

initialement, j'ai fais un script pour lister dans un fichier txt les éléments de plus de 256 caractères :
Get-ChildItem "E:\users\" -r * |? {$_.fullname.length -ge 256} |%{$_.fullname} | out-file "C:\extraction fichiers trop long.txt"

j'aimerais faire quelque chose d'identique avec les fichiers contenant les caractères citées plus haut.
A voir également:

4 réponses

hypothetix Messages postés 188 Date d'inscription dimanche 19 janvier 2020 Statut Membre Dernière intervention 12 avril 2024 6
Modifié le 12 juil. 2021 à 15:49
Bonjour,

Get-ChildItem "E:\users\" -r *  | where {$_.basename -match '~|"|#|%|&|:|<|>|/|\|>
'} |%{$_.fullname}

Tu noteras que cela ne fonctionne pas avec les caractères ? et * (qui listent tous les fichiers)
0