如何使7zip覆盖?

时间:2014-04-23 13:57:15

标签: powershell overwrite 7zip

是否有人在使用7zip覆盖文件时遇到问题。我用这个脚本:

    if ($name.Contains('something'))
 {
 Get-ChildItem \\server\load\$name | 
 % {
 & "C:\test\7z.exe" "x" "-aoa" "-y" $_.fullname "-o\\server\output"
   }
  }
else
{
"$name unknown"
}

在触发脚本之前删除文件时一切正常,但它不会覆盖新文件。我使用-aoa,但也许有不同的开关? 当我尝试在7zip GUI上提取文件并覆盖它的罚款时,我想这不是权限问题。

由于

1 个答案:

答案 0 :(得分:1)

尝试使用:

&"C:\test\7z.exe" x -aoa -y "$_.fullname" -o"\\server\output"

根据我的经验,&与处理参数的方式不一致。但是,通常,您应该假设使用&时PowerShell不会从参数中删除引号。当您调用的程序需要它们自己的参数时,您应该只使用引号。在我的脚本中存档IIS日志,我使用它:

&"$7Zip" a "$ArchiveFile" "$FullLogPath\$LogFileSpec" -mx=9 -mmt=on

变量只是路径或文件名。引号就在那里,因为路径和文件名可以包含空格。

我通常想出的方法是Write-Host &要调用的字符串,然后将其复制并粘贴到cmd.exe shell窗口