在驱动器之间交换文件的程序?

在驱动器之间交换文件的程序?

是否有人编写过一个程序/脚本来在两个硬盘之间传输文件,但是如果两个硬盘都快满了……那么一个硬盘复制一个文件,另一个硬盘复制另一个文件,然后它们删除复制的文件?

有点烦人,有一个 6TB 的 raid,其中大约 4TB 已满,然后 1 个 4.5TB 也基本上已满,不能轻易交换它们......除非进行大量文件复制和删除......

有人知道让它们交换的方法吗?哈哈

答案1

最简单的方法是编写一个小脚本(批处理文件)就足够了。

假设其中一个驱动器上有 1.5Tb,请在每个驱动器上确定三个 1.5Tb 的块,并编写一个批处理文件来执行该作业。

您也可以半自动化此过程。假设您使用的是 Windows,想要复制驱动器X:Y:,并且每个文件都小于您的可用空间(1.5Tb)。
Robocopy这是Windows 2003 资源工具包工具

: repeat
robocopy X:\ Y:\From_X /MOVE /XD From_Y
if errorlevel 2 GOTO cont

SET FIRST_OK=1

: cont
robocopy Y:\ X:\From_Y /MOVE /XD From_X
if errorlevel 2 GOTO repeat

IF "%FIRST_OK"="1" GOTO end
GOTO repeat

: end
move X:\From_Y X:\
move Y:\From_X Y:\

此链接因为由.errorlevel返回,或者更高的方法尚未完成。robocopy2

答案2

您可以使用 shell 脚本(powershell、bash)执行此操作。

L1 := 磁盘 a 上要移动的文件
L2 := 磁盘 b 上要移动的文件

while (L1 有文件或 L2 有文件) 且 (l1 或 l2 为真)
   l1 := 来自 L1 且适合 b 的文件
   l2 := 来自 L2 的文件,适合
   如果 l1
      将 l1 移至 b
   如果 l2
      将 l2 移至 a

相关内容