2011-07-10 264 views
0

更新:Windows批处理文件系统备份

EHH - 虽然这个问题不是“回答”,我刚刚清空了我的口袋和购买的SSD。无论如何,我的虚拟磁盘软件的成本几乎相同。我对这里的答案不再特别感兴趣,所以我只是将其标记为“回答”并继续我的生活。

感谢您的帮助。


我有一个计划,是将文件写入内存虚拟磁盘(在Windows XP),我需要一旦执行完毕后,从ramdisk上复制其数据的目录上我的硬盘。显然,在一个ramdisk中,空间是有限的,我需要在ramdisk上释放尽可能多的空间,因为我可以在这些空间之间运行。简单的解决方案是将我的程序在ramdisk上生成的数据文件夹复制到硬盘上的一个位置,并递归地从ramdisk中删除“data”文件夹。

然而,该解决方案存在问题;我的程序会查看文件系统和文件名以确保它不覆盖文件(目录中最新的数据文件是006.dat,因此它将写入007.dat而不是覆盖任何内容)。一旦完成数据写入后,我不能只删除这些文件,因为它需要完整的文件系统来记录数据,而不会在将数据复制回我的硬盘时覆盖旧文件。

我想一个简单的小窗口批处理脚本,我可以在程序完成将数据文件写入ramdisk后执行。此批处理脚本应将ramdisk“data”文件夹复制到我的硬盘上,并从ramdisk中删除所有文件,然后它应该重新创建文件系统,但它应该是全部零字节文件。

我该怎么办?

+1

我会避免使用虚拟磁盘,让应用程序直接写入硬盘上的目录。如果关注速度,请使用SSD。 –

+0

@PA - 固态硬盘将是这里的最佳解决方案,但我不是由金钱构成的:P。我花了一段时间试图编写我问过的批处理脚本,它太复杂了,并且有它自己的问题。也许这将是一个更好的解决方案写入网络驱动器或火线驱动器......磁盘IO杀死我的实时系统在这里... – Griffin

回答

0

你可以简单地删除所有文件,除了最近的,那么你仍然会有006,你的记录器会产生007吗?

这似乎比创建一个零长度文件更安全,因为您必须确保它不会被复制到备份上的真实006上。

编辑:对不起,不能帮助如何完成批处理,但有一堆unix utils,特别是找到和触摸,这是完美的。有许多Windows端口 - 在SO上搜索选项。

Robocopy.exe(在Windows Server Resource Kit中免费下载)可以做到从一个目录复制到另一个具有观看新的文件目录的选项,复制他们时,他们被关闭或改变

+0

嗯...有效的点。唯一的问题是,我最近的数据文件可能会在500兆左右,而我的虚拟磁盘只是一个大小的演出。 – Griffin