我正在尝试编写一个工具,它会自动在服务器上存档旧的日志文件,并从存档中删除过旧的文件。而且有问题。我需要使用PowerShell从.ZIP存档中删除单个文件,所以我这样做:
$testFile = "C:\test_logs\FirstEntry.zip"
$sh = New-Object -com shell.application
$zip = $sh.NameSpace($testFile)
$item = $zip.Items() | Select-Object -index 3
$item.InvokeVerb("Delete")
但是我尝试以这种方式删除文件时会收到确认窗口。是否可以在没有确认的情况下使用InvokeVerb(ex)删除文件?或者用powershell做任何其他方式?
答案 0 :(得分:1)
我发现最简单的方法是:
$tmp_dir = $env:Temp + "\log_archivation_temp\"
$sh = New-Object -com shell.application
$tmp = $sh.NameSpace($tmp_dir)
$tmp.MoveHere($item.Path)
Remove-Item $tmp_dir
所以我只是将旧文件从存档移动到临时文件夹,然后将其删除。