我想从命令行列出Vista中回收站中的文件。到目前为止,我有这个:

dir C:\$Recycle.Bin /s /b >> recyclebin.txt


这项工作正常,我得到的输出是这样的:


C:\$Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$I2H8K48.zip
C:\$Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$IE94UAG.exe
C:\$Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$IR4P99W.rar
C:\$Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$R2H8K48.zip
C:\$Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$RE94UAG.exe
C:\$Recycle.bin\S-1-5-21-931442927-344369455-2477061601-1000\$RR4P99W.rar


而且我的回收站中只有3个文件,分别为auto-it-v3-setup.exefcleanerportable.rarReinstall.rar

有什么办法可以将这些名称添加到.txt文件列表中,而不是上面的那些代号文件?

最佳答案

要使用PowerShell按其原始位置列出回收站中的文件(另存为file.ps1,请在|之前删除换行符,以便仅获得两行):

(New-Object -ComObject Shell.Application).NameSpace(0x0a).Items()
|select @{n="OriginalLocation";e={$_.ExtendedProperty("{9B174B33-40FF-11D2-A27E-00C04FC30871} 2")}},Name
| export-csv -delimiter "\" -path C:\Users\UserName\Desktop\recycleBinFiles.txt -NoTypeInformation

(gc C:\Users\UserName\Desktop\recycleBinFiles.txt | select -Skip 1)
| % {$_.Replace('"','')}
| set-content C:\Users\UserName\Desktop\recycleBinFiles.txt

08-06 07:45