PowerShell备份工具问题:文件被重复备份至Zip外目录
备份工具重复复制文件问题排查
我正在使用PowerShell开发备份工具,采用robocopy与7-Zip实现功能,当前遇到问题:已成功生成包含备份内容的Zip压缩包,但源文件同时被复制到了Zip包所在的目标目录,导致一份文件存在两份副本。以下是代码及备份情况说明:
代码片段
if ($backupType -eq "v") { # 询问用户加密密码 $password = Read-Host -Prompt "Geben Sie ein Passwort zum Verschlüsseln des Backups ein" # 创建带密码的7-Zip压缩包 $arguments = "a -tzip `"$destinationPath\backup.zip`" `"$sourcePath\*`" -p$password" Start-Process -FilePath "C:\Program Files\7-Zip\7z.exe" -ArgumentList $arguments -Wait # 使用Robocopy复制文件(排除zip文件) robocopy $sourcePath $destinationPath /E /XF *.zip # 生成日志文件 robocopy $destinationPath $logPath /L /NP /NJH /NJS /NDL /NJH /NJS /NS /NC /NFL /NDL /NP /BYTES /XJ /R:0 /W:0 > $logPath }
备份情况
备份截图显示目标目录中同时存在生成的backup.zip压缩包,以及源目录下所有文件的直接副本。
问题原因
重复复制的核心原因是代码中连续执行了两个独立的备份操作:
- 首先通过7-Zip将源目录的所有文件打包为
backup.zip并保存到目标目录; - 紧接着调用
robocopy命令,将源目录的所有文件(排除zip格式)完整复制到同一个目标目录。
这两个操作分别完成了“打包备份”和“直接复制备份”,最终导致目标目录同时存在压缩包和源文件副本,形成重复内容。
内容的提问来源于stack exchange,提问作者LC195
相关产品推荐
相关产品推荐

