4

サーバー上の古いログファイルを自動的にアーカイブし、アーカイブから古すぎるファイルを削除するツールを作成しようとしています。そして問題があります。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でそれを行う他の方法はありますか?

4

1 に答える 1

2

私が見つけた最も簡単な方法は次のとおりです。

$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

したがって、古いファイルをアーカイブから一時フォルダーに移動してから削除します。

于 2012-09-13T15:28:35.617 に答える