[VBS]带参数删除扩展名不是*.h、*.c、*.cpp的全部文件

脚本使用例程CleanFolder遍历一个文件夹

1)使用CleanFolder递归遍历该文件夹下的所有子文件夹

2)如果该子文件夹的大小为0,则删除这个文件夹

3)遍历该文件夹下的所有文件,扩展名不是 *.h *.c *.cpp,则删除该文件

 1 '脚本用途:遍历一个文件夹,执行下列操作
 2 '1)如果一个文件不属于 *.c *.cpp *.h 类型则删除
 3 '2)如果一个子文件夹中没有文件,则删除该文件夹
 4 '输入参数:Argument(0) 被检查文件夹地址
 5  
 6 Option Explicit
 7  
 8 '检查输入参数是否合法
 9 Dim FolderAddress
10 If WScript.Arguments.Count <> 1 Then
11     WScript.Echo "参数输入错误!请输入要遍历的文件夹地址。"
12     WScript.Quit
13 Else
14     FolderAddress = WScript.Arguments(0)
15     WScript.Echo "准备遍历文件夹:"  & FolderAddress
16 End If 
17  
18 Dim FSO
19 Set FSO = CreateObject("Scripting.FileSystemObject")
20  
21 '考察文件夹是否存在
22 If Not FSO.FolderExists(FolderAddress) Then 
23     WScript.Echo "文件夹非法!请检查是否有拼写错误。"
24     WScript.Quit
25 End If 
26  
27 CleanFolder FolderAddress
28  
29 '例程:递归删除一个文件夹内不符合规格的文件和文件夹
30 Sub CleanFolder(Folder)
31  
32     WScript.Echo "开始遍历文件夹:" & FolderAddress
33  
34     Dim SubFolder, File
35     '检查所有子文件夹
36     For Each SubFolder In FSO.GetFolder(Folder).SubFolders
37         WScript.Echo "发现文件夹:" & SubFolder
38         CleanFolder SubFolder
39         '如果文件夹为空,则删除该文件夹
40         If FSO.GetFolder(SubFolder).Size = 0 Then
41             WScript.Echo "删除空文件夹:" & SubFolder
42             FSO.DeleteFolder(SubFolder)
43         End If 
44     Next
45     '删除所有文件
46     For Each File In FSO.GetFolder(Folder).Files
47         WScript.Echo "发现文件:" & File
48         '在这里指定要保留的文件扩展名,不属于该扩展名的文件将被删除
49         If UCase(FSO.GetExtensionName(File.Name)) <> "H" _
50         And UCase(FSO.GetExtensionName(File.Name)) <> "C" _
51         And UCase(FSO.GetExtensionName(File.Name)) <> "CPP" Then
52             WScript.Echo "删除文件:" & File
53             FSO.DeleteFile(File)
54         End If 
55     Next
56      
57 End Sub

调用本脚本,可以在命令行中输入下面的命令运行

1 cscript 脚本地址 待检查文件夹地址 //nologo
 
 
原文地址:https://www.cnblogs.com/masonlu/p/4689889.html