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