我有一个系统运行一个老的FoxPro程序,它生成8个字符长的DBF文件。我们每天备份程序文件夹,但在下午5点,程序产生了很多这样的垃圾dbf,这是一个麻烦。我只需在备份脚本中设置一个del * .dbf文件,但在名称中有几个dbf需要运行该程序。批处理文件运行两个vbs脚本进行备份
文件位于F:\清洁该\
任何数字标题的.dbf文件需要被删除
任何字母名为.dbf文件应该被单独留在家中
Set objFSO = CreateObject("Scripting.FileSystemObject")
objStartFolder = "F:\Clean This\"
Set objFolder = objFSO.GetFolder(objStartFolder)
Set colFiles = objFolder.Files
collide = "ABCEDFGHIJKLMNOPQRSTUVWXYZ"
For Each objFile in colFiles
If UCase(objFSO.GetExtensionName(objFile.name)) = "DBF" Then
num = 1
For num = 1 to 26 'find files with names start with # 0-9
If Left(objFile.Name,1) = Left(collide,num) Then
Wscript.Echo "Save " & objFile.Name
Else If int(Left(objFile.Name,1)) > 0 Then
Wscript.Echo "Delete!"
End IF
End If
Next
End If
Next
由于你可以告诉If语句可以做得更好,我不确定如何更好地解决它。两个Wscript.Echo命令只是占位符,因为如果其他东西我不能找到一个合适的删除功能,可以在dos环境下工作(我已经尝试杀死,否)。
建议和改进将不胜感激!
我试过IsNumeric(),但是因为它有一个.dbf扩展名,所以它的错误。 Num被移动到数组中的下一个字母,而不是打印n个字母。此外,删除带来了一个不匹配的错误:/ –
刚刚意识到我没有在if语句中称为数组的碰撞,我的道歉。 –
第2行字符1,错误:对象需要'goFS'代码800A1A8来源:Microsoft VBScript运行时错误 –