我正在使用 WinRAR 在 Windows 的 CLI 中将一个大文件夹压缩成 rar,如下所示:
winrar.exe a $output_path $input_path
它可以工作,但我注意到命令提示符会立即返回,而作业会在后台继续,直到完成,这需要很长时间。stdout 中也没有进度指示器(7z.exe 有)。
我试过了有或无(在后台运行)开关-ibck
,CLI 行为相同 - 命令提示符立即返回。唯一的区别是,当不使用时-ibck
,会弹出一个小的 WinRAR GUI 窗口。
我正在做的作业是 powershell 脚本中更大管道的一部分。后续步骤应该运行后winrar 已经完成,不是并行的。我该如何实现?
答案1
在 winrar.exe 文件夹中,还有一个 rar.exe。这是命令行界面 (CLI) 版本,您应该使用它来代替 winrar。
它不会显示 GUI,而是使用命令提示符窗口执行所有操作。
在命令运行时,它将等待归档完成后再执行下一条指令。
rar.exe 也可以在 Powershell 中使用。下面是使用您的语法的示例:.\rar.exe a $inputpath $outputpath
答案2
如果由于某种原因,您不想使用 CLI 版本 rar.exe,您可以使用 启动 winrar(或任何其他 Windows GUI 程序)start /wait winrar.exe
。