Listing files in recycle bin

后端 未结 2 1584
北海茫月
北海茫月 2020-12-15 13:30

I want to list the files that are in the recycle bin in Vista from the command line. So far I have this:

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


        
相关标签:
2条回答
  • 2020-12-15 13:56

    I found this script here. And use this command from my batch file to call it

    cscript recyclebin.vbs >> "logs\recyclebin.txt"
    

    Save the following as recyclebin.vbs:

    Option Explicit
    
    Dim g_objWshShell, g_objFSO, g_sLogFile, g_objWshNetwork, g_sScriptName, g_sComputerName, g_sUserName
    Dim g_sVer, g_objLogFile, g_sLogDir
    
    'Setup main variables and objects
    Set g_objWshShell = WScript.CreateObject("WScript.Shell")     'Create a Shell Object
    Set g_objFSO = CreateObject("Scripting.FileSystemObject")     'create a File System Object
    Set g_objWshNetwork = WScript.CreateObject("WScript.Network") 'Create Network Object
    g_sComputerName = g_objWshNetwork.Computername                'Gets machine Computer name
    g_sUserName = g_objWshNetwork.UserName                        'Gets logged-on username
    g_sScriptName=UCase(WScript.ScriptName)                       '*** Name of the script
    
    ' *** START LogFile Information - use Delete or Append info below; don't use both ***
    Const FORREADING = 1, FORWRITING = 2, FORAPPENDING = 8        'Setup constants for writing, appending, etc
    g_sLogDir = "C:\TEMP"
    If Not (g_objFSO.FolderExists(g_sLogDir)) Then
        g_objFSO.CreateFolder(g_sLogDir)
    End If
    g_sLogFile = g_sLogDir & "\" & Left(g_sScriptName, Len(g_sScriptName) - 3) & "LOG" 'Makes log file the SCRIPTNAME.Log
    g_sVer = "1.0"
    
    'To delete a logfile and create a new one each time script is ran
    If g_objFSO.FileExists(g_sLogFile) Then
        g_objFSO.DeleteFile(g_sLogFile) 'Delete logfile if it exists.
    End If
    Set g_objLogFile = g_objFSO.CreateTextFile(g_sLogFile, FORWRITING) 'Setup the logfile for writing
    
    Call Main()
    Call ExitScript()
    
    'Start main script HERE ***
    Sub Main()
        Dim objRecycleBin, objFolderItems, objItem, strSpecialFolderName
        strSpecialFolderName = "Recycle Bin"
        'Call WriteLine("Starting " & g_sScriptName & " at " & Date & " " & Time, g_objLogFile)
        Set objRecycleBin = GetSpecialFolderObject(strSpecialFolderName)    'Get Special Folder based upon input name
        Set objFolderItems = objRecycleBin.Items()                'Get items within Recycle Bin
        For Each objItem In objFolderItems                        'Delete all items within Special Folder
            If (objItem.Type = "File Folder") Then                'Check for file type
                g_objFSO.DeleteFolder(objItem.Path)               'Delete Folders
            Else
                g_objFSO.DeleteFile(objItem.Path)                 'Delete Files
            End If
            WScript.Echo "Deleted " & objItem.Name
        Next
    End Sub
    
    '*-*-*-*-*- Start Subroutines here *-*-*-*-*-
    'Returns SpecialFolder based upon name of folder
    Function GetSpecialFolderObject(NameOfFolder)
        Dim objShellApp, i, objSpecialFolder
        Set objShellApp = CreateObject("Shell.Application")
        On Error Resume Next
        For i=0 To 40   '40 is highest value for special folders
            Set objSpecialFolder = objShellApp.NameSpace(i)
            If (StrComp(objSpecialFolder.Title, NameOfFolder, vbTextCompare) = 0) Then
                Set GetSpecialFolderObject = objSpecialFolder
                Exit For
            End If
        Next
        Err.Clear
    End Function
    
    'Closes logfile and exits script
    Sub ExitScript()
        'Call WriteLine(Date & " " & Time & "; Completed " & g_sScriptName, g_objLogFile)
        If IsObject(g_objLogFile) Then
            g_objLogFile.Close
        End If
        Wscript.Quit
    End Sub
    
    Sub EndOnError(sErrorString)
        WScript.Echo sErrorString & vbCrLf & "Check " & Chr(34) & g_sLogFile & Chr(34) & " for details"
        Call WriteLine (sErrorString, g_objLogFile)
        WScript.Quit()
    End Sub
    
    'Shows usage if input is wrong
    Sub ShowUsage()
        WScript.Echo g_sScriptName & " v" & g_sVer & " Empties Recycle Bin for logged on user" & vbCrLf _
            & vbCrLf & "USAGE: [CSCRIPT] " & g_sScriptName
        WScript.Quit
    End Sub
    
    'Writes to log
    Sub WriteLine(ByVal strMessage, ByVal objFile)
        On Error Resume Next
        If IsObject(objFile) Then        'objFile should be a file object
            objFile.WriteLine strMessage
        Else
            Call Wscript.Echo(strMessage)
        End If
    End Sub
    
    0 讨论(0)
  • 2020-12-15 13:57

    To list files in Recycle Bin by their original location using PowerShell (save as file.ps1, remove line breaks before | so that you get only two lines):

    (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
    
    0 讨论(0)
提交回复
热议问题