Question Comment forcer Windows à renommer un fichier avec un caractère spécial?


J'ai une chanson que Windows ne peut pas lire car il y a un point d'interrogation dans le nom du fichier.

"Where Have All the Cowboys Gone?.ogg" // as an example

J'essaie donc de le renommer et Windows se plaint de l'avoir essayé dans l'Explorateur ou depuis l'invite de commandes.

L'erreur que j'obtiens en essayant de copier, renommer ou déplacer est:

La syntaxe du nom de fichier, du nom de répertoire ou du libellé de volume est incorrecte

y a t-il les fenêtres moyen de forcer un renommage dans ce cas?

Mettre à jour

Je garderai un œil sur cette question, mais après 13 réponses et de nombreuses tentatives (à part des solutions tierces), il semble que Windows ne peut pas faire cela (ou du moins mes fenêtres ne peuvent pas, pas de noms courts). J'accepte donc la réponse qui était ma solution originale quand même d'utiliser Linux. Ce serait bien de voir Windows gérer ça, alors ne vous arrêtez pas juste parce que j'ai accepté cette réponse, la question est toujours là!


78


origine


Puis-je vous demander comment vous êtes arrivé à cet état? Windows ne vous laissera généralement pas faire cela. - Michael Kohne
et la réponse est que j'ai reçu le fichier d'une boîte Linux. c'est aussi un fichier .ogg. mais je me demandais depuis que je suis au travail et je n'ai pas mon linux comment le faire dans windows ... serait bien de savoir - codeLes
pouvez-vous ouvrir cmd.exe et afficher la sortie de la commande "dir" dans ce dossier? il pourrait être utile de voir comment Windows voit le nom ... - Atmocreations
en utilisant dir montre le fichier avec son nom tel que je l'ai répertorié dans la question ... - codeLes
Le système de fichiers NTFS autorise certains caractères que Windows ne possède pas. Si Windows rencontre de tels fichiers, il le fait. - Colonel Panic


Réponses:


Prenez un live-cd Linux et utilisez-le.


41



De toute façon, j'utilise linux de toute façon ... et le fichier est sur un disque dur portable, je me demandais si Windows pouvait le gérer ... quelque chose comme une commande Windows <b> Sudo </ b> ou quelque chose - codeLes
Ceci est un problème générique, pas un problème d'autorisation. Sous Linux, à peu près tout est un caractère valide dans un nom de fichier (y compris les sauts de ligne) sous Windows, il y a un ensemble de caractères réservés et aucun moyen efficace de leur échapper. - salmonmoose
Assurez-vous que la distribution de CD en direct est compatible avec NTFS. Je ne sais pas comment ça se passe maintenant, mais je me souviens que c'était un peu un peu difficile. - Josh Hunt
Les distributions Linux récentes, comme Ubuntu, supportent avec succès les fonctionnalités les plus importantes de NTFS. - Atmocreations
Ubuntu 9.04 est absolument irréprochable avec le support NTFS, avec un ou deux désagréments (comme s'il y avait une coupure de courant et que vous démarriez dans Ubuntu pour économiser quelques secondes de démarrage, vous ne pouvez pas accéder à votre partition Windows) - Phoshi


Avez-vous essayé d'utiliser la version courte des noms de fichiers de son nom? Par exemple

ren whereh~1.ogg where.ogg

S'il s'agit du seul fichier dans le dossier en cours qui commence par les premières lettres, utilisez les 6 premières lettres du nom (en ignorant les espaces) suivies par un tilde (~) puis un 1.


29



Étant donné que la génération de noms abrégés est facultative en fonction de la configuration actuelle de Windows, Murphy indique que les noms abrégés sont désactivés et que le fichier n'en contient pas. Pour apprendre le nom abrégé s'il est présent pour un fichier, utilisez DIR / X qui ajoutera une colonne indiquant le nom abrégé de tout fichier où il diffère du nom long, s'il en a un. S'il y a un nom court, ce serait une réponse plausible. - RBerteig
Vous devriez vraiment essayer ceci… Les noms de fichiers courts peuvent parfois être utiles. - alex
pas de noms courts, essayé votre exemple et aussi le répertoire / x prouve qu'il n'y en a pas. - codeLes


  1. Sous Windows 7: exécutez cmd.exe en mode administrateur.
  2. cd dans le répertoire avec les noms de fichiers.
  3. run: chkdsk / V / f [Mes mauvais fichiers se trouvaient sur un autre lecteur que le lecteur du système d’exploitation. S'il s'agit du lecteur de système d'exploitation, il peut être nécessaire d'effectuer cette étape au démarrage.]
  4. Attendez (peut devoir redémarrer).

Comme vous le verrez, chkdsk a supprimé les fichiers pour moi. Donc, si vous voulez conserver les fichiers, je ne sais pas quoi faire, mais cela éliminera les fichiers à coup sûr.

Résultats / Cmd Log:

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
04/04/2010  02:19 PM         4,014,099 01 Los Lonely Boys - Se?orita - www.file2
4ever.com.mp3
04/04/2010  02:18 PM         3,125,942 12 Los Lonely Boys - La Contestaci?n - ww
w.file24ever.com.mp3
               2 File(s)      7,140,041 bytes
               2 Dir(s)  87,743,991,808 bytes free

E:\islag\Music\llb>chkdsk /V
The type of the file system is NTFS.
Volume label is FreeAgent Drive.

WARNING!  F parameter not specified.
Running CHKDSK in read-only mode.

CHKDSK is verifying files (stage 1 of 3)...
  231424 file records processed.
File verification completed.
  34 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
18 percent complete. (29338 of 245164 index entries processed)
An invalid filename 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 (3196
6) was found in directory 31962.
All filenames for File 31966 are invalid.
Minor file name errors were detected in file 31966.
An invalid filename 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.mp
3 (31973) was found in directory 31962.
All filenames for File 31973 are invalid.
Minor file name errors were detected in file 31973.
73 percent complete. (233817 of 245164 index entries processed)
Index entry 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 in index $I30
 of file 31962 is incorrect.
Index entry 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.mp3 in ind
ex $I30 of file 31962 is incorrect.
  245164 index entries processed.
Index verification completed.

Errors found.  CHKDSK cannot continue in read-only mode.

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
04/04/2010  02:19 PM         4,014,099 01 Los Lonely Boys - Se?orita - www.file2
4ever.com.mp3
04/04/2010  02:18 PM         3,125,942 12 Los Lonely Boys - La Contestaci?n - ww
w.file24ever.com.mp3
               2 File(s)      7,140,041 bytes
               2 Dir(s)  87,743,991,808 bytes free

E:\islag\Music\llb>chkdsk /V /f
The type of the file system is NTFS.
Cannot lock current drive.

Chkdsk cannot run because the volume is in use by another
process.  Chkdsk may run if this volume is dismounted first.
ALL OPENED HANDLES TO THIS VOLUME WOULD THEN BE INVALID.
Would you like to force a dismount on this volume? (Y/N) y
Volume dismounted.  All opened handles to this volume are now invalid.
Volume label is FreeAgent Drive.

CHKDSK is verifying files (stage 1 of 3)...
  231424 file records processed.
File verification completed.
  32 large file records processed.
  0 bad file records processed.
  0 EA records processed.
  0 reparse records processed.
CHKDSK is verifying indexes (stage 2 of 3)...
18 percent complete. (29339 of 245164 index entries processed)
Deleted invalid filename 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3
(31966) in directory 31962.
File 31966 has been orphaned since all its filenames were invalid
Windows will recover the file in the orphan recovery phase.
Correcting minor file name errors in file 31966.
Deleted invalid filename 12 Los Lonely Boys - La Contestaci?n - www.file24ever.c
om.mp3 (31973) in directory 31962.
File 31973 has been orphaned since all its filenames were invalid
Windows will recover the file in the orphan recovery phase.
Correcting minor file name errors in file 31973.
73 percent complete. (233642 of 245164 index entries processed)
Deleting index entry 01 Los Lonely Boys - Se?orita - www.file24ever.com.mp3 in i
ndex $I30 of file 31962.
Deleting index entry 12 Los Lonely Boys - La Contestaci?n - www.file24ever.com.m
p3 in index $I30 of file 31962.
  245164 index entries processed.
Index verification completed.
CHKDSK is scanning unindexed files for reconnect to their original directory.
  2 unindexed files scanned.
CHKDSK is recovering remaining unindexed files.
  2 unindexed files recovered.
CHKDSK is verifying security descriptors (stage 3 of 3)...
  231424 file SDs/SIDs processed.
Cleaning up 41 unused index entries from index $SII of file 9.
Cleaning up 41 unused index entries from index $SDH of file 9.
Cleaning up 41 unused security descriptors.
Security descriptor verification completed.
  6871 data files processed.
CHKDSK is verifying Usn Journal...
  1116928 USN bytes processed.
Usn Journal verification completed.
Correcting errors in the master file table's (MFT) BITMAP attribute.
Windows has made corrections to the file system.

 244196000 KB total disk space.
 158175168 KB in 30003 files.
     22820 KB in 6873 indexes.
         0 KB in bad sectors.
    306168 KB in use by the system.
     65536 KB occupied by the log file.
  85691844 KB available on disk.

      4096 bytes in each allocation unit.
  61049000 total allocation units on disk.
  21422961 allocation units available on disk.

E:\islag\Music\llb>dir
 Volume in drive E is FreeAgent Drive
 Volume Serial Number is 5038-892A

 Directory of E:\islag\Music\llb

02/02/2011  12:18 PM    <DIR>          .
02/02/2011  12:18 PM    <DIR>          ..
               0 File(s)              0 bytes
               2 Dir(s)  87,743,979,520 bytes free

E:\islag\Music\llb>

23



Travaillé comme un charme! Merci - Oren S
Travaillé parfaitement! Cela devrait être la réponse. - enb081
@ enb081 Non, cela ne devrait pas être la solution, car cela n'a rien à voir avec la question, à savoir comment Renommer les fichiers. Sheesh. - Jim Balter


chkdsk réparera parfois des noms de fichiers non valides. Vous recevrez un message sur la suppression du fichier car tous les noms de fichiers ne sont pas valides, puis vous récupérez un fichier perdu. Vous pouvez ensuite trouver le fichier dans C:\found.000\file0000.chk. C'est un moyen efficace de supprimer les fichiers problématiques, mais pas le meilleur si vous souhaitez les conserver.


10





Essayez de spécifier le chemin UNC (voir Nommer des fichiers, des chemins et des espaces de noms). Cela contourne toutes sortes de restrictions. Vous le feriez en utilisant le \\?\ syntaxe.

Exemple, si votre fichier était sur votre bureau (et que votre lecteur Windows est C :), vous pouvez le faire

copy "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone?.ogg" "\\?\C:\Users\codeLes\Desktop\Where Have All the Cowboys Gone.ogg"

Remarque: Vous ne pouvez pas utiliser de chemins relatifs avec cette syntaxe; vous devez spécifier le chemin complet. Et ça ne marche pas avec le ren commande, mais travaille avec copy et move.


10



a essayé, pas de chance "Le nom de fichier, le nom du répertoire ou la syntaxe de l'étiquette de volume sont incorrects." Merci! J'arrive au point où je pense que la bonne réponse est d'utiliser Linux pour le renommer (ce que j'ai fait). - codeLes
Cette réponse est définitivement erronée. La restriction sur les caractères valides se trouve dans le pilote NTFS du noyau Windows. \\?\ contourne simplement le traitement du chemin de fichier dans la bibliothèque d'exécution en mode utilisateur. Il ne permet pas d'ouvrir les noms de fichiers contenant les 5 caractères génériques (*? "<>), Les autres caractères réservés (/ |: \) ou les caractères de contrôle. - eryksun
Cela fonctionne dans mon cas: j'avais un nom de fichier avec le caractère Unicode à l'intérieur et à la fin \n . Ne me demandez pas comment je l'ai créé (bon, j'essaie de voir si vous pouvez créer plusieurs fichiers avec le même nom sous Windows). Explorer, FreeCommander ne pouvait pas le supprimer mais \\?\C:\... pouvez. - Dio Phung


La façon dont j'ai supprimé le fichier tenace était en ouvrant 7zip, en trouvant le fichier et en renommant le fichier via 7zip. La mienne était une chanson qui avait un espace à la fin du fichier.


8



Vous voulez dire que le fichier lui-même n'était même pas dans une archive, mais vous avez juste utilisé 7-Zip pour le renommer sur le système de fichiers? Intelligent. - Arjan
Cela fonctionne très bien. J'ai essayé plusieurs autres options ici, et c'était la première qui fonctionnait. - rakensi
7zip a pu renommer votre fichier car les noms de fichiers contenant des espaces ne sont pas un problème dans Windows. Noms de fichiers contenant '?' sont un problème, et 7zip ne peut pas les renommer. - Jim Balter
RÉPONSE INCORRECTE ! - user2284570
Cela a parfaitement fonctionné pour moi, car mon problème s'est avéré ne pas être des points d'interrogation réels, mais des caractères Unicode étranges qui apparaissaient simplement comme des points d'interrogation dans mon gestionnaire de fichiers. En important les fichiers (il y en avait des centaines) dans une archive 7-Zip et en les exportant à nouveau, 7-Zip convertissait simplement les caractères incorrects en caractères de soulignement (_). Ensuite, j'ai pu travailler à nouveau avec les fichiers. Problème complètement résolu. Merci pour un excellent conseil! - Jesper


Utilisation Recuva. Il est principalement destiné à la récupération de fichiers supprimés, mais il est également possible d’inclure des fichiers non supprimés dans son analyse.

Après avoir lancé Recuva, refusez l'assistant et sélectionnez le bon disque. Ensuite, allez dans Options, recherchez et cochez l'option "Rechercher les fichiers non supprimés" et lancez l'analyse. Après un certain temps, tous les fichiers du disque seront supprimés (supprimés ou non). Trouvez vos fichiers avec des noms non valides (les noms sont déjà fixés dans la vue), sélectionnez-les, cliquez avec le bouton droit de la souris et enregistrez ("récupère") quelque part.

enter image description here

Je viens de le faire (sous Windows XP).


6





L'outil Microsoft DISKEDIT.EXE est un outil de bas niveau permettant de lire et d'écrire directement des données de disque brutes. Vous devriez pouvoir charger le cluster contenant l’entrée de répertoire pour ce fichier et simplement changer le personnage à quelque chose d'inoffensif et l'écrire sur le disque.

Je crois savoir que l’outil Microsoft diskedit (pas l’outil Norton Utilities du même nom, qui concerne uniquement les volumes FAT) a été vu pour la dernière fois dans Windows 2000 SP4. Mais il y a un lien qui peut être trouvé ici.

Pour localiser le bon cluster, vous pouvez télécharger une version d'essai de DiskExplorer pour NTFS.

Vous commenceriez avec File-> Drive ... pour ouvrir le lecteur contenant ce fichier incorrect. Sélectionnez Goto-> Root Directory pour obtenir une vue du répertoire. Accédez au répertoire contenant votre fichier incorrect en utilisant les liens MFT #. Quand vous y arriverez, le haut de la fenêtre dira quelque chose comme: "MFT # x12345 DIR: 'dirname', ... blah blah blah ... à partir du cluster x9302AE, bla bla bla "

Passez maintenant à Microsoft diskedit. Commencez par File-> Open ... et spécifiez le nom du volume C: (si le fichier se trouve sur votre lecteur C:). Laissez le nom du fichier de volume vide. Prenez ce numéro de cluster de départ et entrez-le dans diskedit sous Read-> NTFS Clusters ...-> Starting Cluster (saisissez-le sous forme de nombre hexadécimal).

Utilisez maintenant les touches fléchées pour faire défiler le nom du fichier. Il est en Unicode, donc vous chercherez quelque chose comme "W.h.e..H.a.v.e.A.l.l.h.e.s.C.o.w.b.o.y.s. .G.o.n.e. Placez votre curseur sur le mauvais caractère "3F" et tapez quelque chose de sûr, comme 5F ('_'). Choisissez Write-> It pour l'écrire sur le disque.

Il y a un autre endroit pour frapper (pas sûr si un ou les deux sont nécessaires). Maintenant, dans DiskExplorer, cliquez sur le Mft # pour le fichier incorrect. Vous aurez un écran avec une chose d'arbre sur la gauche qui dit "structures". Cliquez sur "Attributs" dans l'arborescence. Il vous montrera une liste d'attributs, dont l'un sera quelque chose comme $ 30 ... $ FILE_NAME. Donc, 30 $ a le nom du fichier. Cliquez sur le nœud Body sous le nœud $ 30 dans l'arborescence Structures. Sélectionnez le menu Affichage-> comme hex. Plusieurs lignes plus bas, vous devriez voir le nom de fichier à nouveau W.h.e.r.e. .H.a.v.e ... etc. Sur la gauche de l'écran, vous verrez la colonne Sector, qui indique le secteur de disque que vous examinez.

Retour sur le diskedit. Ne lisez-> Secteurs ... et entrez le numéro de secteur de DiskExplorer. Comme précédemment, faites défiler et remplacez le caractère "3F" par le même caractère que ci-dessus. Choisissez Write-> It pour l'écrire sur le disque.

J'ai fait tout cela, et les outils me disent que j'ai changé le personnage, mais pas l'explorateur. Le répertoire doit être mis en cache quelque part. Après un redémarrage, le changement devient visible.


5



+1 pour la bonne (mais plus ou moins pratique) approche, en espérant que cela va un peu monter et dépasser au moins certaines des mauvaises réponses. ;) - Sz.


Essayez d'utiliser un outil tiers tel que le Ken Rename outil:

Screenshot of Ken Rename

ou Renommer Maître.

enter image description here

Voici une liste d'outils de changement de nom de fichier.

Je les teste moi-même, mais j'utilise Windows Vista 64 bits; le traitement des fichiers peut être différent.

Si ces outils échouent, vous pouvez vouloir donner Windows PowerShell un coup de feu. Voir Renommer des fichiers sur le Blog Windows PowerShell.


5



n'avait pas essayé un outil tiers. - codeLes
J'ai essayé Directory Opus, et cela n'a pas fonctionné (même message d'erreur). - user14068
J'ai essayé Flexible Renamer 8.4 qui semble faire l'affaire. Provient du même site Web que vous avez mentionné. - JohnnyBizzle


Avez-vous essayé de le déplacer dans un fichier avec le bon nom?

move "Where Have All the Cowboys Gone?.mp3" "Where Have All the Cowboys Gone.mp3"

4



essayé, pas de chance. "La syntaxe du nom de fichier, du nom de répertoire ou du libellé de volume est incorrecte" - codeLes
Cela a fonctionné pour moi avec le copy commander. - Nicolas
@Nicolas, vous voulez dire qu'il y avait un ? ou * ou < ou > ou : dans le nom, et copy-ing vient de travailler? (Je l'ai juste essayé et ça n'a pas été fait pour moi sans surprise.) - Sz.
@Sz. désolé d'avoir entendu cela n'a pas fonctionné pour vous. Je ne me souviens pas du nom de fichier que j'ai dû renommer, mais cela a fonctionné pour moi avec le copy commander. Avez-vous également essayé cygwin et la commande bash mv? - Nicolas
@Nicolas, merci d’essayer d’aider, mais ce que je veux dire, c’est que ces caractères que j’avais listés ci-dessus (et quelques autres, comme ", |, /, et bien sûr la barre oblique inverse (que je n'arrive pas à entrer ici :))) dans une classe différente de caractères problématiques (réservé), et j'ai peur, ni le copy commande ni Cygwin peut faire le tour de les renommer. (Vous avez probablement eu des caractères différents dans votre nom de fichier problématique.) - Sz.


  • S'il y a plus d'un fichier, créez un nouveau répertoire avec un nom simple, par exemple a.
  • Déplacez un seul fichier à chaque fois vers ce répertoire.
  • Dans cmd.exe Accédez au nouveau répertoire et tapez ce qui suit:

    ren *.ogg 1.ogg   
    

    C'est pour la simplicité. Ensuite, vous pouvez le renommer en XP comme vous le souhaitez, comme 1.ogg à Where Have All the Cowboys Gone.ogg. ogg était juste un exemple, l'extension peut être n'importe quoi.


4



Hein? Comment êtes-vous censé déplacer ce fichier (de OP) avec le joker dans son nom? - Sz.