如何在将文件添加到存档后立即在创建存档期间删除文件?

How to delete files during the creation of an archive immediately after being added to the archive?

我试过使用 WinRAR 的命令行实用程序 rar.exe,但它总是先创建一个压缩文件,然后在创建压缩文件后删除原始文件。

基本上我想做的是将多个大文件添加到一个存档中,但我 运行 缺少免费 space。

实际情况:

  1. 文件 1 已添加到存档 x.rar
  2. 文件 2 已添加到存档 x.rar
  3. 文件 3 已添加到存档 x.rar
  4. 文件 1 已删除
  5. 文件 2 已删除
  6. 文件 3 已删除

我希望达到的目标:

  1. 文件 1 已添加到存档 x.rar
  2. 文件 1 已删除
  3. 文件 2 已添加到存档 x.rar
  4. 文件 2 已删除
  5. 文件 3 已添加到存档 x.rar
  6. 文件 3 已删除

有什么办法可以做到这一点吗?

下面的批处理文件可用于将指定源文件夹中的一个文件一个接一个地移动到 RAR 压缩包中。

@echo off
setlocal EnableExtensions DisableDelayedExpansion
set "SourceFolder=C:\Temp"

for /F "eol=| delims=" %%I in ('dir "%SourceFolder%\*" /A-D /B 2^>nul') do "%ProgramFiles%\WinRAR\Rar.exe" m -cfg- -ep -idcdp -m4 -y -- "%SourceFolder%\Archiv.rar" "%SourceFolder%\%%I" || goto CreationError
goto EndBatch

:CreationError
echo/
pause

:EndBatch
endlocal

但我怀疑这对您没有足够的存储空间 space 来一个接一个地创建包含大文件的存档文件的帮助。 Rar.exe 必须在更新现有存档文件时创建现有存档文件的临时副本,再添加一个文件,这很可能会再次导致可用存储空间不足 space 情况。

如果没有 运行两个进程,不可能在添加文件后立即删除文件。第一个进程作为单独的进程启动 Rar.exe,但逐行捕获其输出并删除由 Rar.exe 添加到存档的文件,而 Rar.exe 作为单独的进程正在 运行ning .但我认为这是不可能用批处理文件实现的。

我建议 运行 作为管理员 Windows 磁盘清理 工具并使用它来删除所有文件不再需要。 Windows Windows 磁盘清理 工具提供的 Windows 更新清理 作为管理员 运行 通常释放几个此清理工具上的存储空间 space 千兆字节 运行 之前从未有过。手动执行必要的 Windows 重启后,虽然没有显示需要 Windows 重启才能完成 Windows 更新清理,但以管理员身份手动删除所有文件夹和文件夹 %SystemRoot%\SoftwareDistribution\Download 中的文件(Windows 安全更新包已在 Windows 重启后安装,有时不会自动删除,因为它应该始终由 Windows 更新完成)和文件夹 %SystemRoot%\Temp(系统进程的临时文件夹)以获得更多的免费存储空间 space。请等待 Windows 重新启动,直到再次显示 Windows 桌面,即使显示 100% done 超过一个小时。 Microsoft 忘记将文件删除过程包括在百分比指示中,并且由于某些未知原因需要很长时间才能删除不再需要的数千个文件,因为这些文件已经被较新的 Windows 安全更新所取代。请注意,Windows 更新清理 之前从未完成,可能需要数小时才能完成,尤其是在 Windows 8/8.1/10 上,它总是需要更长的时间Windows7.

最后还要清理使用过的互联网浏览器的文件缓存,以获得更多免费存储 space 运行 宁已经用完免费存储 space .