Batch file 对包含特定单词的文件进行VBScript检查';s文件名,然后查找并删除该文件
我想知道是否有一种方法可以使我的vbs脚本可以检查和删除任何文件中的某个单词的名称。这就是我到目前为止所做的:Batch file 对包含特定单词的文件进行VBScript检查';s文件名,然后查找并删除该文件,batch-file,vbscript,Batch File,Vbscript,我想知道是否有一种方法可以使我的vbs脚本可以检查和删除任何文件中的某个单词的名称。这就是我到目前为止所做的: 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\
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中是否有类似的内容?是否还有一种方法可以删除名称中带有“example”扩展名的文件?例如:
filesys.DeleteFile "C:\Documents and Settings\Name\Desktop\example.anyextension"
非常感谢!我希望您不要介意我的大量问题,我刚刚开始使用VBS/VBScript编写代码,非常感谢您的帮助!:)
ExpandEnvironmentStrings
方法返回环境变量的扩展值。环境变量名称必须包含在%
字符之间,不区分大小写:
Set WshShell = WScript.CreateObject("WScript.Shell")
WScript.Echo "Current user name: " _
& WshShell.ExpandEnvironmentStrings("%USERNAME%")
WScript.Echo "Desktop folder: " _
& WshShell.ExpandEnvironmentStrings("%USERPROFILE%") & "\Desktop"
从链接源粘贴到此处的所有下一个代码段均保持不变。可以成为任何
VBScript
初学者的起点。在下一个大型脚本存储库中激励自己:
从……偷来的。使用
Like
关键字搜索计算机上包含波浪号(~
)的所有文件。但是,请阅读MSDN:
以下VBS
代码示例介绍了如何执行标准
数据文件上的通配符搜索。请注意,必须使用反斜杠分隔符
将使用另一个反斜杠(\\
)进行转义。另外,当使用
“CIM_DataFile.FileName
”在WHERE
子句中,WMIPRVSE
进程将扫描任何可用存储设备上的所有目录。
这可能需要一些时间,特别是如果您已映射远程共享,
并且可以触发防病毒警告
这里有一个更智能、更快的解决方案,并提供了全面的评论:嘿,脚本编写人!博客(十岁以下):
当然,像大多数
WMI
脚本一样,这个脚本也可以在远程计算机上运行。我想你应该想写一些像清洁器之类的东西,所以你可以从中得到启发==>
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
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