Powershell和winrar命令行

时间:2016-01-11 10:39:29

标签: powershell winrar

所以经过一天左右的挖掘后,我发现没有太多关于powershell和winrar命令行解压缩文件的信息。

我的困难在于参数和命令行的实际执行。

到目前为止,这是我的简单代码:

$WinRar = "C:\Program Files\WinRAR\winrar.exe"

#filter through files looking for zip files.
$path = get-ChildItem -filter "*.zip" -path A:\testfolder\ -recurse

#test to see if it is actually filtering and showing correct results:
write-host = $path | format-table directory

#arguments :: x (extract) y(presume yes) r(recurse subdir) 
&$WinRar x -y -r "$path" A:\Testfolder\



read-host "press to exit"

我对powershell很新,似乎很快就会抓住,但我假设我完全错了,因为代码执行但它没有提取。所以我猜它在命令行的某个地方出错了,我无法看到它在做什么。

他们是否有任何建议或提示可以指引我朝着正确的方向前进?

我已经尝试了$ winrar命令的许多变体而没有运气除了部分,如果我将$ path替换为它工作的实际文件路径..这不是我需要的:P

1 个答案:

答案 0 :(得分:2)

您可以使用简单的foreach方法:

$Zips = Get-ChildItem -filter "*.zip" -path A:\testfolder\ -Recurse
$Destination = 'C:\Extracted'
$WinRar = "C:\Program Files\WinRAR\winrar.exe"

foreach ($zip in $Zips)
{
&$Winrar x $zip.FullName $Destination
Get-Process winrar | Wait-Process
}

如果您希望多个WinRAR进程一起运行,请删除Get-Process