You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

使用Compress-Archive -Update时匹配0文件竟删除现有Zip的问题

Compress-Archive 使用 -update 参数时匹配0个文件会删除现有压缩包的问题

这确实是Compress-Archive cmdlet一个反直觉的行为,属于设计缺陷范畴。

问题复现步骤:

# 创建一个小文件
echo 'bibbity' > bibbity.txt

# 此-path参数匹配到bibbity.txt,创建bobbity.zip
compress-archive -path bibbity.* -update -destinationpath bobbity.zip

# 删除相关文件
rm bibbity.*

# 此-path参数匹配不到任何文件,Compress-Archive竟删除了bobbity.zip!
compress-archive -path bibbity.* -update -destinationpath bobbity.zip

行为对比:

  • 预期:指定-update参数时,仅应更新压缩包内的文件(添加新文件、替换已修改的文件),若没有匹配到源文件,应保留现有压缩包不做改动。
  • 实际:当-path匹配0个文件时,执行带-update的Compress-Archive会直接删除目标zip文件。

解决方案:

在执行压缩命令前先检查是否存在匹配的文件,避免误删:

# 尝试获取匹配的文件,忽略错误
$targetFiles = Get-Item -Path bibbity.* -ErrorAction SilentlyContinue

if ($targetFiles) {
    # 有匹配文件时才执行压缩更新
    Compress-Archive -Path $targetFiles -Update -DestinationPath bobbity.zip
} else {
    Write-Warning "未找到匹配的源文件,跳过压缩操作"
}

内容的提问来源于stack exchange,提问作者Roy Pardee

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.15 11:30:44