0

我的问题是我的 PowerShell 存档存档脚本在使用Compress-Archivecmdlet 消耗了我的整个计算机内存后崩溃。

下面for添加的循环确实有助于一次只处理几个文件,但我仍然在尝试压缩的大文件上遇到“内存不足”错误。

设置最大 PowerShell 内存仍然是一种选择吗?我知道设置最大内存可能不起作用。另外,我认为垃圾收集可以成为一种解决方案。垃圾收集器应该放在哪里?合适的语法是什么?[System.GC]::Collect()?

$ArchiveContents = Get-ChildItem -Path C:\OneDrive | Sort-Object -Descending
for ($i=0; $i -le $ArchiveContents.Count; $i=$i+10) {
    Compress-Archive -Path $ArchiveContents.FullName[$i..($i+9)] -Update -DestinationPath \\Server011\Backup_Archive\CompanyData\Daily\OneDrive.zip -CompressionLevel Optimal
}
if (-not $?) {
    $SMTPServer = "smtp.gmail.com"
    #Redacted ?
    $smtp.Send($message)
} else {
    $SMTPServer = "smtp.gmail.com"
    #Redacted?
    $smtp.Send($message)
}
4

0 回答 0