如果您放弃 Invoke-Expression 并直接执行 7z 是否有效,例如:
& 'C:\Program Files\7-Zip\7z.exe' u -mx5 -tzip -r -ppeople123 $DestFileZip $DestFile
尽管您正在使用文件更新 zip,但我不确定您为什么要使用-r- 除非 $DestFile 真的是一个目录?无论如何,使用 7z 9.20 这对我有用 - 没有错误:
C:\> $destZip = "foo&bar's.zip"
C:\> $destFile = "foo&bar's.txt"
C:\> & 'C:\Program Files\7-Zip\7z.exe' u -mx5 -tzip -ppeople123 $destZip $destFile
7-Zip [64] 9.20 Copyright (c) 1999-2010 Igo Pavlov 2010-11-18
Scanning
Creating archive foo&bar's.zip
Compressing foo&bar's.txt
Everything is OK