如何在不创建带有zip名称的单独文件夹的情况下将多个拉链提取到一个文件夹的powershell

时间:2017-02-06 12:13:53

标签: windows powershell

这是我在powershell中的脚本

$today   = (Get-Date).ToString('dd_MM_yyyy')
$LocalPath = "C:\Builds\$today"
New-Item -ItemType directory -Path $LocalPath
$RemotePath = "C:\Builds\zip\$today"
$Max_hours = "-5"
#Max_mins = "-5"
$Curr_date = get-date

#Checking date and then copying file from LocalPath to RemotePath
Foreach($file in (Get-ChildItem $RemotePath))
{
    if($file.LastWriteTime -gt ($Curr_date).addhours($Max_hours))
    {

        Get-ChildItem "C:\Builds\zip\$today\*pc*.*" | % {& "C:\Program Files\7-Zip\7z.exe" "x" "-aoa" $_.fullname "-oC:\Builds\$today"}
    }
    ELSE
    {"not extracting $file"
    }

}

我有一些* .zip文件,我想将其提取到特定文件夹中。问题是,7zip创建带有* .zip名称的子文件夹并将文件解压缩到此文件夹中。

EG。我有 a.zip b.zip c.zip 文件,我希望它们能够在Builds文件夹中完全提取。现在,在我的命令之后,它们被提取到:

构建/ a /(此处为a.zip文件)

Builds / b /(这里是b.zip文件)

Builds / c /(这里是c.zip文件)

我希望它们都在Builds /(这里是a,b,c文件)中,具有完整的目录路径。 shell中是否有任何7zip选项可以做到这一点?

' -e'选项exctracts没有文件夹路径的所有文件,那就是我现在正在寻找的东西。

1 个答案:

答案 0 :(得分:0)

如果您使用的是PowerShell v5,则可以使用Expand-Archive代替7zip:

Expand-Archive C:\aaaa\nuget350.zip -DestinationPath C:\bbbb

修改

使用该命令时,我没有创建文件夹。

包含文件的zip文件:

zip file

正在运行{{1}}

提取的内容:

enter image description here