有没有办法仅当硬盘空闲时执行批处理文件移动操作?

有没有办法仅当硬盘空闲时执行批处理文件移动操作?

我知道如何检查特定程序是否正在winrar运行可能指示驱动器的使用情况d:,但有没有更好的方法来确定驱动器是否相对空闲(通过Batch或其他方法,从 调用Batch file)以开始移动大文件(在后台运行的批处理文件中),因为同时移动操作似乎会损坏我的计算机,我猜可能是由于 100% 的硬盘使用率。对驱动器进行了碎片整理,但仍然如此。

答案1

一个简单的方法可以在一行中完成,最好的部分是你不需要计时。让系统来担心这个。

我们希望使用开始带有 /LOW 优先级标志的命令。如果您输入,start /?您会发现 /LOW 标志实际上意味着 IDLE。

请注意,磁盘 I/O 才是真正的问题(而不是处理器负载),但这仍然会产生很大的影响。

就像是:

start /Low "Copying files on idle..." cmd.exe /c copy "c:\gigantic_nerd.file" "d:\archive_folder"
  • 我们看到start将进程优先级设置为空闲
  • 我们看到start将标题设置为“复制文件..”
  • 然后start使用 /c 标志启动 cmd.exe,该标志告诉 cmd.exe 在完成后退出。
  • “copy blah blah blah”之后的所有内容均由现在以空闲优先级运行的 cmd.exe 执行。

请记住,您还可以使用start它来限制允许使用的处理器。

请注意:这是一项很好的练习,但对于大多数人来说,29 美元的 256GB SSD 硬盘就可以实现这一点全部走开。即使是14美元128GB SSD 硬盘将改变您的生活。如果更换大型硬盘,这是不可能的。

另请注意:OP 有一块巨大的 HDD(24TB),而且它不会很快被 SSD 取代。

相关内容