【发布时间】:2018-03-12 12:34:57
【问题描述】:
我有一个包含 n 个 rar 文件的文件夹,其中一些文件被分割为 .part01,.part02。我目前使用的代码如下。
$Rars = Get-ChildItem -path 'c:\demopath' -filter "*.rar"
$Destination = 'c:\demopath'
$WinRar = "C:\Program Files\WinRAR\WinRAR.exe"
foreach ($rar in $Rars)
{
&$Winrar x -y $rar.FullName $Destination
Get-Process winrar | Wait-Process
}
此代码运行多次,以按其拥有的部分数量一次又一次地提取同一文件。例如,如果文件有 3 个部分,它将提取相同的文件 3 次(覆盖先前提取的文件)。对于单个 rar 文件没有问题。如果我只给出“x”,那么它会给出文件已经存在的弹出窗口。需要一个不会给出任何弹出窗口的解决方案,并且仅当目录中不存在同名文件时才提取。 有人可以帮我解决这个问题吗?
【问题讨论】:
-
UnRAR.exe、Rar.exe和WinRAR.exe支持所有C:\demopath\*.rar作为存档文件名模式,用于将指定目录中的所有存档提取到指定目标目录或指定目标目录中的每个子目录的子目录name 是使用开关-ad时存档文件的名称。所有三个可执行文件都会自动检测源目录中的多卷存档,并且只将它们全部提取一次。因此,您根本不需要带有循环的 PowerShell 脚本来提取目录中的所有 *.rar 存档文件。 -
WinRAR 的程序文件文件夹中的文本文件
Rar.txt是控制台版本的手动Rar.exe(和UnRAR.exe)解释了这种提取多个档案的可能性一个命令行。列表项命令行模式下Contents选项卡上WinRAR的帮助解释了此方法也适用于GUI版本WinRAR.exe。因此,阅读文档对您来说会很有用。 -
我需要使用 powershell 来自动化一些其他任务。所以请记住你的解决方案,牢记powershell。
标签: powershell extraction rar winrar