0

我最近恢复了一个崩溃的 1.5TB 外置硬盘。我用来恢复文件的程序是 Active Undelete Enterprise,非常棒。成功恢复文件后,它们都以 .efs 扩展名保存,因此文件看起来像 mydocument.docx.efs。起初我以为它们是加密的,需要解密,我花了 10 分钟才意识到我只需要从整个文件名中删除 .efs,mydocument.docx 就可以完美运行。问题是现在我在数百个文件夹中有超过 55,000 个文件,我需要在每个文件之后简单地删除 .efs。有谁知道如何做到这一点?

4

2 回答 2

0

在命令提示符窗口中,导航到这些文件所在的顶级目录。输入命令

DIR /S/B >>filelist.txt

此命令将为您提供当前目录以及所有嵌套子目录的裸格式文件列表,没有任何无关信息。该列表将包含在名为“filelist.txt”的文本文件中或您选择的任何其他名称中。然后我会在文本编辑器中使用这个文本文件来转换每一行文本,例如,

C:\Users\dlucas\.gimp-2.8\mathmap\file1.png.efs

rename c:\Users\dlucas\.gimp-2.8\mathmap\file1.png.efs file1.png

举一个我刚刚使用这种方法在我的系统上找到的文件的简单示例。

您需要使用具有列编辑功能的文本编辑器,因为您必须修改许多文件。CodeWright 等老程序员的编辑器使这变得非常简单,而 Eclipse 或 Notepad++ 等现代编辑器使这变得更加困难,并且可能需要一个列式编辑插件,具体取决于版本。您基本上必须制作文件中所有文本的列式副本,然后将副本粘贴到最右边 - 足够远,第二列文件名和路径不会覆盖任何现有文件名和路径. 然后,您可以使用列编辑功能来选择和删除第二列中文本的路径名,因为重命名命令要求第二个参数只是基本文件名和扩展名而没有路径信息。您可以使用列编辑功能在每一行前面加上“RENAME”。如果您尝试在没有柱状编辑功能的情况下执行此操作,您会发现它进展缓慢!

另一种方法是使用由“正则表达式”形成的命令来创建重命名命令。如果您不熟悉“正则表达式”,请询问程序员朋友,因为这不是一个容易从头学习的话题。如果您熟悉正则表达式,这可能是执行此任务的最简单方法。我已经很多年没有使用它们了,也不再记得要使用的确切语法,否则我会自己告诉你。

无论您使用哪种编辑器,目标都是将此包含路径和文件名的 ASCII 文件列表转换为批处理文件(只需在完成编辑后将 file1.txt 重命名为 file1.bat)。然后,您可以通过在命令提示符处键入 file1.bat 来运行批处理文件。

我自己使用您使用的同样非常棒的工具也遇到了同样的问题。我在等待取消删除程序完成时写这个。它使用这个额外的扩展名恢复文件似乎非常反直觉,所以我会寻找一个选项让它在完成时不这样做。如果我找到一个,我会在这里发布一个更具体到这个工具的新答案。否则,我将像您一样重命名所有 kazillion 文件。

于 2013-09-10T08:57:03.270 回答
0

根据 Active@ UNDELETE 文档,您遇到此问题是因为您将文件恢复到的磁盘“不支持加密”。该文档没有进一步解释哪种磁盘支持加密等。

他们提供了一个解密命令,该命令将文件的正确名称作为后处理步骤恢复。不幸的是,这要求您“包含”每个要解密的文件,不支持通配符和解析子目录,因此这是一个非首发,在我看来,鉴于我们俩都有数十万个文件要重命名.

我确实发现,通过选择一个普通的固定(不可移动)硬盘驱动器作为恢复工作的目标,生成的文件最终不会被加密(即,它们是用正确的文件名和扩展名恢复的)。我最初选择了一个基于 USB 的大型闪存驱动器,文件以“加密”状态存储(没有真正加密,但可能是这样,因此它们提供了 .efs 扩展名)。当然,这意味着我必须在切换到普通硬盘驱动器后重新运行该命令(由于存在许多扇区 CRC 错误,需要大约 16 小时才能恢复 80GB 的文件)。

于 2013-09-10T16:22:10.580 回答