2009-04-04 8 views
4

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

그리고 난 단지 자동 - 그것 - V3-setup.exe를 fcleanerportable.rar 및 Reinstall.rar라는 이름의 내 휴지통에서 3 개 파일이 있습니다.

위의 코드 이름이 지정된 파일이 아닌 txt 파일 목록에 이러한 이름을 사용하고 있습니까?

답변

2

이 스크립트는 여기에서 발견되었습니다. PowerShell을 사용하여 원래 위치로 휴지통에

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 

'*-*-*-*-*- End Subroutines here 
*-*-*-*-*- '*** End 
1

목록에 파일을 something.vbs로 그리고 다음 저장을 그

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

전화를 내 배치 파일에서이 명령을 사용하여 (다른 이름으로 저장 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