Supprimer le fichier contenant des caractères invalides dans les fenêtres

16

J'ai des fichiers contenant des deux points dans le nom de fichier (par exemple, 1d67c0d23e859ed4a259749e4a720d9e: default-sink). Lorsque j'essaie de les supprimer de la ligne de commande avec la commande:

c:\backup> del /F *.*

J'obtiens "Le système ne trouve pas le fichier spécifié." pour chaque fichier. Si je spécifie un fichier individuel:

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

J'obtiens "Le nom de fichier, le nom de répertoire ou la syntaxe de l'étiquette de volume est incorrect.". Si j'essaie d'utiliser rd sur le dossier parent, j'obtiens

Comment puis-je supprimer ces fichiers?

grom
la source
2
Ces fichiers ont été créés sur la partition NTFS lorsque j'ai été démarré sous Linux. Je suppose que je vais devoir utiliser le 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 du système de fichiers.
grom
EN RELATION
David Refoua

Réponses:

22

Il existe un article de la base de connaissances Microsoft répertoriant les moyens de supprimer ces fichiers à l'adresse suivante:

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

La façon dont j'utilise généralement la méthode API native:

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

Selon:

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

Il :s'agit d'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.

Ausmith1
la source
4
Cela ne fonctionne pas pour les deux points, car il est interprété comme un flux de données nommé.
psusi
Cela a fonctionné pour mon cas. le fichier avec ,
lequel
Merci, cela a fonctionné pour moi. Le dossier s'est terminé dans une période. CA848D8F.
Mastro
1
Ça ne marche pas. Mon nom de fichier contient une barre oblique inverse.
Pacerier
Si le nom de fichier contient :comme l'OP l'a demandé, cette méthode ne fonctionne pas. Utilisez-le chkdskou supprimez-le d'un linux en direct.
Sourav Ghosh
15

Je suppose que vous pouvez essayer le nom 8.3?

del /F 1d67c0~1

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

Il y avait un outil gratuit appelé, delinvfilemais ils sont partis et l'ont changé en shareware / payant

Mark Henderson
la source
Comment pourrais-je être en mesure de le faire sur un volume NTFS créé avec la formatcommande avec la prise en charge des noms 8.3 désactivée?
user2284570
1
@ user2284570 cette méthode ne fonctionnera pas. Lorsque j'ai écrit cette réponse, Microsoft avait activé les noms 8.3, mais de nos jours, il est désactivé par défaut.
Mark Henderson
@MarkHenderson, mon nom de fichier est 7:2. Comment utiliser le nom 8.3 pour le nom de fichier de 7:2?
Pacerier
@Pacerier voir mon commentaire précédent. Cette méthode ne fonctionnera pas sur les systèmes d'exploitation modernes. Windows XP ou version antérieure.
Mark Henderson
13

Cela a fonctionné pour moi:

  1. Ran chkdsk /f
  2. PC redémarré
  3. Ensuite, j'ai pu sélectionner et supprimer le fichier
JohnB
la source
4

Fermez tous les fichiers, le cas échéant, qui sont enregistrés dans le lecteur qui contient 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 "Erreur de vérification".

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

Cela démontera votre lecteur et analysera le lecteur complet pour les erreurs, éventuellement il supprimera ces fichiers avec des noms illégaux. À la fin, il affichera un message indiquant que certains fichiers ont été corrigés.

J'ai supprimé ces fichiers de mon disque dur externe avec succès.

Atul Vaibhav
la source
3

J'ai un sous - système pour les applications UNIX installé sur mon PC (Windows 7). Depuis le shell Windows, je peux créer un fichier avec touch 1d67c0d23e859ed4a259749e4a720d9e:default-sink, puis le supprimer avecrm *:*

Joe Internet
la source
Les utilitaires compatibles POSIX (tels que SFU) peuvent supprimer ces fichiers.
Ausmith1
@JoeInternet: sigghh Microsoft a supprimé tous les sous-systèmes non Windows avec 2012 et plus.
user2284570
... mais un sous-système Unix est de retour dans la victoire 10.
user165568
1

Essayez de renommer le dossier parent en un seul caractère (a, 1, etc.), puis essayez de supprimer le dossier parent. Si cela ne fonctionne pas, déplacez-vous dans le premier dossier enfant et renommez-le en un seul caractère et réessayez la suppression. J'utilise souvent cette méthode pour les fichiers avec des caractères invalides (ne me demandez pas comment ils sont créés car je ne sais pas) ou pour les fichiers dont le chemin dépasse le maximum (encore une fois, ne demandez pas comment cela se produit).

joeqwerty
la source
1

7zip peut supprimer des fichiers que Windows ne parvient pas à; Je l'ai utilisé dans le passé pour traiter des noms de fichiers trop longs, mais je ne l'ai jamais essayé sur des fichiers avec des deux-points. Ils seraient normalement utilisés pour désigner l'ADS.

Dentrasi
la source
En effet, 7-zip utilise cygwin.
user2284570
1
Ne fonctionne pas pour mes deux fichiers. Le premier fichier a un nom de fichier avec barre oblique inverse et le deuxième fichier a un nom de fichier avec deux points.
Pacerier
Non, c'est parce que 7-zip utilise l'API Windows au lieu du shell. Il a les mêmes limites que l'API: il pense que les deux-points indiquent des flux.
user165568
7zip a fonctionné pour moi
user1278519
1

J'ai un système à double démarrage et aucune des réponses ci-dessus n'a fonctionné pour moi. Si le fichier se trouve sur un disque monté par votre autre système d'exploitation (Ubuntu 16.04 LTS pour moi), vous pouvez le supprimer en utilisant simplement votre autre système d'exploitation;)

Ang Black
la source
Ceci est assez raisonnable dans une liaison (mais ne peut pas être fait sur une machine en ligne). De plus, le double démarrage natif n'est pas nécessaire, car nous pouvons démarrer une distribution en direct pour ce faire, comme le disque d'installation de Fedora ou Knoppix. TOUTEFOIS, il faut être prudent dans un environnement comme celui-ci, car le pilote NTFS3G que nous utilisons pour monter ce système ne respectera pas la plupart des autorisations / ACL Windows (ce qui est exactement pourquoi il est si efficace pour se débarrasser des fichiers "bloqués") .
Spooler
0

Avez-vous essayé de citer les noms de fichiers? Donner la commande exacte que vous exécutez serait pratique.

womble
la source
Je l'ai ajouté à la commande exacte que je lance pour remettre en question.
grom
0

Avez-vous essayé d'utiliser un caractère générique? Par exemple, 'del 1d67c0d23e859ed4a259749e4a720d9e *. *' Pourrait fonctionner.

Michael Kohne
la source
Vous, j'ai essayé les caractères génériques. Pas de chance
grom
1
La prochaine chose à laquelle je pense est de démarrer le système avec un cd linux (comme le cd de secours du système), d'y monter le volume et d'essayer de le supprimer. Vous pourriez obtenir des résultats intéressants à ce stade, car qui sait ce qui se passe réellement dans le système de fichiers.
Michael Kohne
@MichaelKohne: Je pense que l'utilisation d'une implémentation de chemin Unix est également la bonne solution. Mais pourquoi utiliser Linux? Windows est exécuté en tant que sous-système NT et il existe déjà un sous-système POSIX / Unix NT.
user2284570
1
@ user2284570 - car étant donné qu'ils ont été créés avec Linux, il semble probable que le pilote linux NTFS autorise quelque chose qu'il ne devrait pas avoir, ce que même le shell Windows POSIX peut ne pas pouvoir passer devant le pilote du système de fichiers. Il est beaucoup plus simple de démarrer un CD Linux live, de supprimer le faux fichier et de redémarrer Windows.
Michael Kohne
@MichaelKohne: Non, car les chemins UNC fonctionnent déjà (sous-système natif) et avec les sous-systèmes POSIX, il n'y a pas d'accès direct à d'autres flux de données, vous pouvez donc les utiliser à l' :intérieur de fichiers.
user2284570
0

Avez-vous essayé dir / X pour trouver le vrai nom 8.3, puis avez-vous essayé de supprimer ce nom?

Ou, ce fichier pourrait-il avoir un autre flux de données? Vous voudrez peut-être le regarder avec l'outil à http://www.nirsoft.net/utils/alternate_data_streams.html pour voir ce que cela peut vous dire (je n'ai jamais utilisé cet outil, il est juste apparu lorsque j'ai cherché) .

Michael Kohne
la source
0

J'avais un dossier avec une commma au nom. J'ai essayé quelques-unes des suggestions ci-dessus et je n'ai pas pu les faire fonctionner.

J'ai pu supprimer les dossiers avec cygwin. L'installation de cette application n'est pas pour tout le monde, mais elle fera l'affaire.

Rich MacDonald
la source
0

Aucune des suggestions ci-dessus n'a fonctionné pour moi. J'ai utilisé WinRar. Ouvrez winrar et vous verrez une liste de fichiers, où vous trouverez le fichier suspect "nom de fichier" (que vous avez créé en tant que "nom de fichier: some_text.txt". Renommez le fichier dans Winrar et fournissez-lui une extension (comme .txt ou .doc).

Revenez à l'Explorateur Windows, vous verrez "nom de fichier .txt" (ou doc). Supprimez-le de là.

Prashant Lamba
la source