1

一時ディレクトリがいっぱいになるリモート マシンが多数あります。(これは Selenium/webdriver グリッド リモートです)。クリーニングが必要なファイルとディレクトリを特定する PowerShell スクリプトがあります。使用中のコマンドは次のようになります (さまざまなマシンとディレクトリの複雑さを除く)。

gci $env:TEMP -Recurse| Remove-Item -ErrorAction Continue -Recurse

問題は、一部のファイルが使用中の場合、これに時間がかかりすぎることです。ローカルでは、ハンドルの出力に参加できます (解析は少し面倒です) が、リモート マシンではより複雑になります。特に、WinRM が正しく構成されていること、ハンドルがパス内にあることなどを確認する必要があります。

ファイルが使用中であることを識別する簡単な方法はありますか? 理想的には、Powershell (.NET を含む) を介してフィルター処理できるものです。私は他のさまざまなスクリプト言語 (ruby、python、perl) に精通しています。

4

1 に答える 1

2

開いているファイルを一覧表示するために私が見つけた最良のツールは、SysInternals ツールの handle.exe です

$openFiles = @(handle $env:TEMP | Foreach {($_ -split ": ")[3]} | Select -Unique)
于 2012-04-03T22:26:18.303 に答える