使用Textfile中的文件创建7-Zip存档 - Powershell

时间:2016-02-26 10:51:05

标签: powershell archive 7zip

我正在为我们的存档文件支持者编写一个小型Powershell应用程序。但是现在由于7zip选项而陷入困境。

用户可以选择日期和目录,代码会选择在该日之前修改的所有文件。

现在我想将所有这些文件存储在Zip存档中,但我没有得到它:(

    $path = Read-Host "please select path : "

    Set-Alias sz "C:\Program Files\7-Zip\7zG.exe"


    $bis = Read-Host "please select date (dd.mm.yyyy): "
    $bisdate = [datetime]::ParseExact($bis,'dd.MM.yyyy',$null)

    $files = Get-ChildItem $path | Where {$_.LastWriteTime -lt $bisdate}  |     ForEach-Object { $_.FullName} > C:\Test\list.txt 

我找到了几个7zip操作的样本,但找不到这种情况的解决方案。 Bash有什么选择吗?那样的东西?

    zip archive -@ < out.txt

2 个答案:

答案 0 :(得分:0)

您可以使用“7za”。它是一个7zip-console-application。你发现它使用谷歌。 将它放在一个公共路径中,该路径位于路径变量中。

以下是一个例子:

7za a -tzip "C:temp\myzip.zip" "C:\temp\Client\*.*"

答案 1 :(得分:0)

如果您在指定目录中有7z.exe7z.dll,则可以使用此代码创建存档:

foreach ($filePath in [System.IO.File]::ReadAllLines("c:\Test\list.txt"))
{
    $archParams += "`"" + $filePath + "`" "
}
$archParams = "a `"C:\Test\list.zip`" " + $archParams

Start-Process -FilePath "C:\Program Files\7-Zip\7z.exe" -Wait -ArgumentList $archParams

由于space - 文件路径中的符号

,因此必须转发qoutes