2009-04-04 21 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を使用して元の場所でごみ箱内のファイルを一覧表示するにはsomething.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 

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

として、以下の保存

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

それを呼び出すために私のバッチファイルからこのコマンドを使用しますfile.ps1、|の前に改行を削除すると、2行しか表示されません)

(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 
関連する問題