用VC6.0写了好多代码,编译过后生成了很多不想要的文件。于是我写了下面这个脚本,只把里面的代码文件留下。
脚本编写的思想如下:
先进行输入合法性检查
脚本使用例程CleanFolder遍历一个文件夹
1)使用CleanFolder递归遍历该文件夹下的所有子文件夹
2)如果该子文件夹的大小为0,则删除这个文件夹
3)遍历该文件夹下的所有文件,扩展名不是 *.h *.c *.cpp,则删除该文件
'脚本用途:遍历一个文件夹,执行下列操作
'1)如果一个文件不属于 *.c *.cpp *.h 类型则删除
'2)如果一个子文件夹中没有文件,则删除该文件夹
'输入参数:Argument(0) 被检查文件夹地址
Option Explicit
'检查输入参数是否合法
Dim FolderAddress
If WScript.Arguments.Count <> 1 Then
WScript.Echo "参数输入错误!请输入要遍历的文件夹地址。"
WScript.Quit
Else
FolderAddress = WScript.Arguments(0)
WScript.Echo "准备遍历文件夹:" & FolderAddress
End If
Dim FSO
Set FSO = CreateObject("Scripting.FileSystemObject")
'考察文件夹是否存在
If Not FSO.FolderExists(FolderAddress) Then
WScript.Echo "文件夹非法!请检查是否有拼写错误。"
WScript.Quit
End If
CleanFolder FolderAddress
'例程:递归删除一个文件夹内不符合规格的文件和文件夹
Sub CleanFolder(Folder)
WScript.Echo "开始遍历文件夹:" & FolderAddress
Dim SubFolder, File
'检查所有子文件夹
For Each SubFolder In FSO.GetFolder(Folder).SubFolders
WScript.Echo "发现文件夹:" & SubFolder
CleanFolder SubFolder
'如果文件夹为空,则删除该文件夹
If FSO.GetFolder(SubFolder).Size = 0 Then
WScript.Echo "删除空文件夹:" & SubFolder
FSO.DeleteFolder(SubFolder)
End If
Next
'删除所有文件
For Each File In FSO.GetFolder(Folder).Files
WScript.Echo "发现文件:" & File
'在这里指定要保留的文件扩展名,不属于该扩展名的文件将被删除
If UCase(FSO.GetExtensionName(File.Name)) <> "H" _
And UCase(FSO.GetExtensionName(File.Name)) <> "C" _
And UCase(FSO.GetExtensionName(File.Name)) <> "CPP" Then
WScript.Echo "删除文件:" & File
FSO.DeleteFile(File)
End If
Next
End Sub
调用本脚本,可以在命令行中输入下面的命令运行
cscript 脚本地址 待检查文件夹地址 //nologo
END