是否有人在使用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上提取文件并覆盖它的罚款时,我想这不是权限问题。
由于
答案 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窗口