Liệt kê tất cả các tệp văn bản có tên dài chính xác năm ký tự trên toàn bộ ổ C: - tạo đầu ra danh sách ở định dạng rộng [trùng lặp]


0

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 ~


Tôi chỉ cần viết một chương trình Java để làm điều đó.
Daniel R Hicks

Đối với định dạng rộng, cần biết độ rộng hiện tại của cửa sổ dòng lệnh. Thông tin này được lưu trữ trong sổ đăng ký. Lặp lại câu hỏi của bạn tại SO.
Endoro

Từ câu trả lời khác: dir / B | findstr / R "^ ....... \. txt"
tgkprog

Câu trả lời:


0

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ờ)


chạy nó trên ổ đĩa c của tôi. mất 20 phút, tìm thấy một loạt các tệp txt với 5 ký tự trong tên.
tgkprog
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.