Câu hỏi này đã có câu trả lời ở đây:
Tôi đã thử CD C: \ TRỰC TIẾP / s / b ?????. Nhưng tôi sẽ trả về tất cả các tệp có tên trong vòng 5 ký tự, vậy làm thế nào để chỉ hiển thị chính xác 5 ký tự ??
Cảm ơn bạn rất nhiều ~
Câu hỏi này đã có câu trả lời ở đây:
Tôi đã thử CD C: \ TRỰC TIẾP / s / b ?????. Nhưng tôi sẽ trả về tất cả các tệp có tên trong vòng 5 ký tự, vậy làm thế nào để chỉ hiển thị chính xác 5 ký tự ??
Cảm ơn bạn rất nhiều ~
Câu trả lời:
Kịch bản VBA để liệt kê tất cả các tệp văn bản ....
'Wscript.Echo "begin."
Set objFSO = CreateObject("Scripting.FileSystemObject")
DIM folderStart,fileOutName, fileH
On Error Resume Next
folderStart = InputBox("Drive or folder to start looking in", , "D:\prog\github\academic")
fileOutName = InputBox("File to write results", "Output file", "c:\tmp\filesFounds.note")
Set objSuperFolder = objFSO.GetFolder(folderStart)
Set fileH = objFSO.OpenTextFile(fileOutName,2 ,1)
fileH.WriteLine ("Start " & Now)
Call ShowSubfolders (objSuperFolder, fileH)
Call fileH.WriteLine ("end " & Now)
fileH.Close
Wscript.Echo "Done " & Now
WScript.Quit 0
Sub ShowSubFolders(fFolder, fileH)
Err.clear
On Error Resume Next
Set objFolder = objFSO.GetFolder(fFolder.Path)
If Err.Number = 0 then
Set colFiles = objFolder.Files
If Err.Number = 0 then
For Each objFile in colFiles
If Err.Number = 0 then
If UCase(objFSO.GetExtensionName(objFile.name)) = "TXT" Then
If len(objFile.name) = 9 Then
'Wscript.Echo objFile.Name
fileH.WriteLine (objFile.path)
'fileH.WriteLine (objFile.name) 'only short name
End If
End If
End If
Next
End If
For Each Subfolder in fFolder.SubFolders
Call ShowSubFolders(Subfolder, fileH)
Next
End If
End Sub
Nguyên
'Wscript.Echo "bắt đầu." Đặt objFSO = CreateObject ("Scripting.FileSystemObject") Thư mục DIM Bắt đầu, fileOutName, fileH thư mụcStart = InputBox ("Ổ đĩa hoặc thư mục để bắt đầu tìm kiếm", "c: \") fileOutName = InputBox ("Tệp để ghi kết quả", "Tệp xuất", "c: \ tmp \ filesFound.note") Đặt objSuperFolder = objFSO.GetFolder (thư mụcStart)
Set fileH = objFSO.OpenTextFile(fileOutName,2 ,1)
fileH.WriteLine ("Start " & Now)
Call ShowSubfolders (objSuperFolder, fileH)
Call fileH.WriteLine ("end " & Now)
fileH.Close
Wscript.Echo "Done " & Now
WScript.Quit 0
Sub ShowSubFolders(fFolder, fileH)
On Error Resume Next
Set objFolder = objFSO.GetFolder(fFolder.Path)
Set colFiles = objFolder.Files
For Each objFile in colFiles
If UCase(objFSO.GetExtensionName(objFile.name)) = "TXT" Then
If len(objFile.name) = 9 Then
'Wscript.Echo objFile.Name
fileH.WriteLine (objFile.path)
'fileH.WriteLine (objFile.name) 'only short name
End If
End If
Next
For Each Subfolder in fFolder.SubFolders
Call ShowSubFolders(Subfolder, fileH)
Next
End Sub
Hoặc lấy nó từ http://sel2in.com/pages/prog/vba/
Để sử dụng tên tệp phải là a.vbs hoặc name5.vbs (hoặc một cái gì đó khác kết thúc bằng vbs) sau đó chỉ cần mở nó - nhấp đúp hoặc nhấp chuột phải và chọn mở
Với việc xử lý lỗi nhưng chưa được thử trên c: \ (đang chạy ngay bây giờ)