2 votes

Comment ouvrir un dossier dont le nom n'est pas valide ?

Le nom du dossier est ..(

Le dossier a été créé lors d'une exportation Evernote. J'ai essayé d'ouvrir, de déplacer, de supprimer et de renommer le dossier dans l'interface graphique de XP et j'ai obtenu une erreur. J'ai essayé de faire de même dans l'invite de commande et j'obtiens une erreur, telle que...

F:\tsr>ren "..(" dotdotparens
The system cannot find the file specified.

F:\tsr>ren "\\?\f:\tsr\..(" dotdotparens
The system cannot find the file specified.

1 votes

Je pense que nous allons avoir besoin de plus d'informations à ce sujet. Essayez-vous de double-cliquer dessus, de l'ouvrir par batch, d'où vient-il, que pensez-vous qu'il contienne, recevez-vous un message d'erreur lorsque vous essayez de l'ouvrir ? Avez-vous exécuté chkdsk pour vérifier que ce n'est pas votre problème ?

0 votes

Ce nom de fichier n'est pas invalide puisqu'il ne contient aucun caractère invalide (je viens d'essayer de créer et de supprimer un dossier et un fichier avec ce nom et cela a bien fonctionné). Il doit donc y avoir une autre raison qui vous empêche de supprimer le fichier. Essayez chkdsk avec réparation comme suggéré par Rémy.

5voto

RedGrittyBrick Points 78148

Ouvrez une invite de commande et renommez-la

cd parentfolder
ren "..(" dotdotparens

Par exemple

C:\temp>dir

 Directory of C:\temp

19/11/2010  17:51    <DIR>          .
19/11/2010  17:51    <DIR>          ..
19/11/2010  17:50    <DIR>          ..(

C:\temp>ren "..(" dotdotparens

C:\temp>dir

 Directory of C:\temp

19/11/2010  17:53    <DIR>          .
19/11/2010  17:53    <DIR>          ..
19/11/2010  17:50    <DIR>          dotdotparens

Cependant, comme ..( est un nom de dossier valide qui peut être ouvert dans l'explorateur, il y a probablement plus que ce que vous avez vu. La technique peut encore être utile.


Mise à jour : si vous avez installé perl, essayez ceci

C:\temp>perl -e "opendir H,'.'; while ($f=readdir(H)) { print qq($f\n) if $f=~/^\.\.\(/ }"
..(A

Si ce qui précède n'imprime qu'un seul dossier, vous pouvez poursuivre en toute sécurité...

C:\temp>perl -e "opendir H,'.'; while ($f=readdir(H)) { rename $f, 'xxx' if $f=~/^\.\.\(/ }"

C:\temp>perl -e "opendir H,'.'; while ($f=readdir(H)) { print qq($f\n) if $f=~/^\.\.\(/ }"

Mise à jour du 19 décembre 2011

Si vous n'avez pas Perl mais que vous souhaitez l'avoir, vous pouvez téléchargez et installez-la .

Si vous voulez vérifier les noms de fichiers ou de dossiers, vous pouvez utiliser quelque chose comme ceci

C:\test> dir
19/12/2011  16:49    <DIR>          .
19/12/2011  16:49    <DIR>          ..
19/12/2011  16:49    <DIR>          ð

C:\test> perl -le "opendir H,'.'; print $_,qq(\t),unpack('H*',$_) for readdir(H);"
.       2e
..      2e2e
­-       f0

C:\test> perl -e "rename qq(\xf0),'foo' or die $!";

Le script perl script fournit un vidage hexadécimal des noms de fichiers ou de répertoires afin que vous puissiez déterminer exactement ce qu'ils sont et faire quelque chose à leur sujet.

0 votes

Ça n'a pas marché pour moi. J'ai inclus les détails dans la question.

0 votes

Vous avez un +1 parce que je sais de quoi vous parlez... j'ai déjà eu un serveur qui s'est effondré à cause d'un Shell nix sur une machine Windows. cela permettait des noms de fichiers vraiment fous qui ne pouvaient pas être changés dans Windows, même à travers le CLI de Windows.

0 votes

Je n'ai pas installé Perl.

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