28 votes

Supprimer le fichier contenant des caractères non valides dans Windows

J'ai quelques fichiers qui contiennent le caractère deux-points dans le nom de fichier (par exemple, 1d67c0d23e859ed4a259749e4a720d9e:default-sink). Lorsque j'essaie de les supprimer en ligne de commande avec la commande :

c:\backup> del /F *.* 

Je reçois "Le système ne peut pas trouver le fichier spécifié." pour chaque fichier. Si je spécifie un fichier individuel :

c:\backup> del /F "1d67c0d23e859ed4a259749e4a720d9e:default-sink" 

Je reçois "Le nom de fichier, de répertoire ou d'étiquette de volume est incorrect.". Si j'essaie d'utiliser rd sur le dossier parent, je reçois

Comment puis-je supprimer ces fichiers ?

2 votes

Ces fichiers ont été créés sur la partition NTFS lorsque j'étais démarré sous Linux. Je suppose que je devrai utiliser un disque de démarrage Linux car il semble que Windows n'aime pas les deux-points dans les noms de fichiers au niveau du pilote de système de fichiers.

0 votes

27voto

Badams Points 156

Il y a un article KB de Microsoft répertoriant les façons possibles de supprimer de tels fichiers à :

http://support.microsoft.com/kb/320081

La méthode que j'utilise généralement est la méthode API native :

del "\\?\c:\chemin\1d67c0d23e859ed4a259749e4a720d9e:default-sink"

Conformément à :

http://msdn.microsoft.com/en-us/library/aa365247%28VS.85%29.aspx

Le : est un caractère réservé sur NTFS, la méthode API native que j'ai mentionnée ci-dessus est la méthode recommandée pour supprimer de tels fichiers.

5 votes

Cela ne fonctionne pas pour les deux-points, car il est interprété comme un flux de données nommé.

0 votes

Cela a fonctionné pour mon cas. le fichier avec lequel j'avais le problème contenait une virgule ,

0 votes

Merci, cela a fonctionné pour moi. Le fichier s'est terminé par un point. CA848D8F.

18voto

Shlomi Fish Points 1951

Je suppose que vous pouvez essayer le nom 8.3?

supprimez /F 1d67c0~1

Notez que sur les lecteurs NTFS, vous pouvez désactiver explicitement la fonctionnalité 8.3, donc si c'est le cas, vous n'avez pas de chance pour cette option. Pour obtenir le nom de fichier dir un dir /x

Il y avait un outil gratuit appelé delinvfile mais ils l'ont changé en logiciel shareware/payant

0 votes

Comment pourrais-je faire cela sur un volume NTFS créé avec la commande format avec la prise en charge des noms 8.3 désactivée ?

1 votes

@user2284570 cette méthode ne fonctionnera pas. Quand j'ai écrit cette réponse, Microsoft avait activé les noms 8.3, mais de nos jours ils sont désactivés par défaut.

0 votes

@MarkHenderson, Mon nom de fichier est 7:2. Comment utiliser le nom 8.3 pour le fichier 7:2?

13voto

JohnB Points 497

Cela a fonctionné pour moi:

  1. Exécuté chkdsk /f
  2. Redémarré l'ordinateur
  3. Ensuite, j'ai pu sélectionner et supprimer le fichier

9voto

vaibhavatul47 Points 161

Fermez tous les fichiers, le cas échéant ouverts, qui sont enregistrés dans le lecteur contenant ces fichiers. Maintenant, ouvrez les propriétés du lecteur.

"Poste de travail" -> "Clic droit sur ce lecteur" > propriétés

Ensuite, allez dans l'onglet "Outils" et cliquez sur "Vérifier maintenant" sous l'étiquette 'Vérification des erreurs'.

entrer la description de l'image iciCliquez ici pour agrandir l'image

Cela démontera votre lecteur et analysera l'ensemble du lecteur à la recherche d'erreurs, finalement il supprimera ces fichiers avec des noms illégaux. À la fin, il affichera un message disant que certains fichiers ont été réparés.

J'ai réussi à supprimer de tels fichiers de mon disque dur externe.

0 votes

Le fichier que j'essayais de supprimer contenait un point d'interrogation sur Windows 10, et seule cette méthode m'a aidé. Analysez le disque et il vous demandera s'il faut réparer, cliquez sur réparer et le fichier disparaîtra.

0 votes

Cela a fonctionné sur Win7 pour nettoyer un fichier avec un ? dans le nom de fichier qui a été rsync'd depuis un système Linux. D'autres approches répertoriées ci-dessus n'ont pas fonctionné.

5voto

Joe Internet Points 1449

J'ai Subsystem for UNIX-based Applications installé sur mon PC (Windows 7). Depuis l'invite de commandes Windows, je peux créer un fichier avec touch 1d67c0d23e859ed4a259749e4a720d9e:default-sink, puis le supprimer avec rm *:*

0 votes

Les utilitaires conformes à POSIX (comme SFU) peuvent supprimer de tels fichiers.

0 votes

@JoeInternet : sigghh Microsoft a supprimé tous les sous-systèmes non Windows à partir de 2012.

1 votes

... mais un sous-système UNIX est de retour dans Windows 10.

SistemesEz.com

SystemesEZ est une communauté de sysadmins où vous pouvez résoudre vos problèmes et vos doutes. Vous pouvez consulter les questions des autres sysadmins, poser vos propres questions ou résoudre celles des autres.

Powered by:

X