まずは、準備。
> $shell = New-Object -comObject Shell.Application
> $shell.NameSpace(10)
Title : ごみ箱
Application : System.__ComObject
Parent :
ParentFolder : System.__ComObject
Self : System.__ComObject
OfflineStatus :
HaveToShowWebViewBarricade : False
ShowWebViewBarricade : False
ゴミ箱の中のファイル数を取得する。
> $shell.NameSpace(10).Items().Count
3
ごみ箱の中のファイル名の一覧を取得する。
> $shell.NameSpace(10).Items() | % { $_.Name }
新規 Microsoft Office Word 文書.docx
新しいテキスト ドキュメント.txt
新規 Microsoft Office Excel ワークシート.xlsx
一つ目のファイルの情報を取得する。ここでは、$itemに入れている。
> $item = $shell.NameSpace(10).Items().Item(0)
> $item
Application : System.__ComObject
Parent : System.__ComObject
Name : 新規 Microsoft Office Word 文書.docx
Path : C:\$Recycle.Bin\S-1-5-21-2464054850-802308169-2795062852-1001\$R95HRWN.docx
GetLink :
GetFolder : System.__ComObject
IsLink : False
IsFolder : False
IsFileSystem : True
IsBrowsable : False
ModifyDate : 2009/03/18 21:07:06
Size : 0
Type : Microsoft Office Word 文書
上記だけでは、ファイル自身の情報が今一わからないのでGetDetailsOfを使ってもっと細かい情報を取得する。
GetDetailsOfで取得できる情報は、ごみ箱を開いた時に表示される列の順なので、0から順に9列目まで取得する。
> 0..8 | % { $shell.NameSpace(10).GetDetailsOf( $item, $_ ) }
新規 Microsoft Office Word 文書.docx
C:\Test
2009/ 03/ 18 21:07
0 バイト
Microsoft Office Word 文書
2009/ 03/ 18 21:07
2009/ 03/ 18 21:07
2009/ 03/ 18 21:07
A
ゴミ箱からファイルを削除する。
> Remove-Item $item.Path
指定したファイルを元に戻す、元の場所じゃなくてもいいけど。
> Move-Item $item.Path ( Join-Path $shell.NameSpace(10).GetDetailsOf( $item, 1 ) $item.Name )
0 コメント:
コメントを投稿