Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Batch file 对包含特定单词的文件进行VBScript检查';s文件名,然后查找并删除该文件_Batch File_Vbscript - Fatal编程技术网

Batch file 对包含特定单词的文件进行VBScript检查';s文件名,然后查找并删除该文件

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\

我想知道是否有一种方法可以使我的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\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