2015-05-09 88 views
3

我想知道是否有辦法讓它成爲我的vbs腳本可以檢查並刪除某個單詞的任何文件在它的名字。這是我到目前爲止有:使VBScript檢查文件名稱中包含某個單詞的文件,然後查找並刪除該文件

x=MsgBox ("Searching for any infected files...",64,"Search") 

DIM filesys 
Set filesys = CreateObject("Scripting.FileSystemObject") 
If filesys.FileExists("C:\Documents and Settings\Name\Desktop\example.txt") Then 
    WScript.Sleep 1500 
    x=MsgBox ("Warning! A infected file was found!",48,"Warning") 
    filesys.DeleteFile "C:\Documents and Settings\Name\Desktop\example.txt" 
    x=MsgBox ("File was deleted!",48,"File Deleted") 
    WScript.Sleep 1000 
    x=MsgBox ("This Computer is now clean!",64,"Hooray!") 
Else 
    WScript.Sleep 500 
    x=MsgBox ("File not found! This Computer is clean!",64,"Hooray!") 
End If 

有也是一種方式,使任何一臺計算機上的用戶名/文件路徑的工作?我知道這是

"C:\Documents and Settings\%username%\Desktop\example.txt" 

批處理,但有沒有類似的VBScript?是否還有一種方法可以刪除名稱中包含「示例」的任何擴展名的文件?例如:

filesys.DeleteFile "C:\Documents and Settings\Name\Desktop\example.anyextension" 

非常感謝!我希望你不介意我的大量問題,我只是開始用VBS/VBScript編寫代碼,非常感謝你的幫助! :)

+0

我想你想寫一些像清潔劑,所以你可以從這裏得到靈感==> http://stackoverflow.com/questions/23832414/how-to-move-file-while-renaming-it-與-遞增-IF-的文件,存在功能於VBS – Hackoo

回答

1

ExpandEnvironmentStrings方法返回一個環境變量的擴展值。環境變量名,它必須%字符之間被封閉,不區分大小寫:

Set WshShell = WScript.CreateObject("WScript.Shell") 
WScript.Echo "Current user name: " _ 
    & WshShell.ExpandEnvironmentStrings("%USERNAME%") 
WScript.Echo "Desktop folder: " _ 
    & WshShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Desktop" 

粘貼從鏈接消息在不變的所有未來的代碼片段。可以成爲任何VBScript初學者的起點。在下一個巨大的腳本庫激勵自己:Script resources for IT professionals


Search for Files Using a Wildcard Query被盜。使用Like關鍵字搜索計算機上包含代字號的所有文件(~)。然而,在MSDN閱讀CIM_DataFile class

以下VBS代碼示例介紹瞭如何執行一個數據文件標準 通配符搜索。請注意,反斜線分隔符必須使用另一個反斜槓(\\)轉義 。另外,當在WHERE子句中使用 「CIM_DataFile.FileName」時,WMIPRVSE 進程將掃描任何可用存儲設備上的所有目錄。 這可能需要一些時間,特別是如果您已映射遠程共享, 並且可能觸發防病毒警告。

strComputer = "." 
Set objWMIService = GetObject("winmgmts:" _ 
    & "{impersonationLevel=impersonate}\\" & strComputer & "\root\cimv2") 

Set colFiles = objWMIService.ExecQuery _ 
    ("Select * from CIM_DataFile where FileName Like '%~%'") 

For Each objFile in colFiles 
    Wscript.Echo objFile.Name 
Next 

這裏有一個更智能,更快解決全面的評論:How Can I Delete Specific Files in a Specific Folder?您好,腳本專家!博客(旁邊十歲):

strComputer = "." 

Set objWMIService = GetObject("winmgmts:\\" & strComputer & "\root\cimv2") 

Set colFileList = objWMIService.ExecQuery _ 
    ("ASSOCIATORS OF {Win32_Directory.Name='T:\Act'} Where " _ 
     & "ResultClass = CIM_DataFile") 

For Each objFile In colFileList 
    If InStr(objFile.FileName, "current") Then 
     objFile.Delete 
    End If 
Next 

當然,最喜歡的WMI腳本,這其中也可以對遠程計算機上運行。

相關問題