如何打开名称无效的文件夹?

Hom*_*mer 3 filesystems windows-xp

文件夹名称是..(

该文件夹是在 Evernote 导出期间创建的。我尝试在 XP GUI 中打开、移动、删除和重命名,但出现错误。我在命令提示符中尝试了相同的操作,但出现错误,例如...

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

F:\tsr>ren "\\?\f:\tsr\..(" dotdotparens
The system cannot find the file specified.
Run Code Online (Sandbox Code Playgroud)

Red*_*ick 6

打开命令提示符并重命名

cd parentfolder
ren "..(" dotdotparens
Run Code Online (Sandbox Code Playgroud)

例如

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
Run Code Online (Sandbox Code Playgroud)

但是,由于 ..( 是可以在资源管理器中打开的有效文件夹名称,因此该名称可能比您看到的要多。该技术可能仍然有用。


更新:如果你安装了 perl,试试这个

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

如果上面打印单个文件夹,则可以安全地继续...

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=~/^\.\.\(/ }"
Run Code Online (Sandbox Code Playgroud)

2011 年 12 月 19 日更新

如果您没有 Perl 但想要,您可以下载并安装它

如果你想检查文件或文件夹名,你可以使用这样的东西

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 $!";
Run Code Online (Sandbox Code Playgroud)

perl 脚本提供文件或目录名称的十六进制转储,以便您可以准确地计算出它们是什么并对其进行处理。