我有一個系統運行一個老的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運行時錯誤 –