Tạo file *.bat để lọc file

Liên hệ QC

anhthoichoem

Thành viên mới
Tham gia
26/10/08
Bài viết
20
Được thích
1
Chào các anh chị
Không biết anh chị trong diễn đàn có ai rành về command trong dos hướng dẫn giúp em tạo file *bat để xử lý trong tình huống này:
Em có 1 folder chứa nhiều thư mục con khác nhau, trong thư mục con lại có nhiều loại file khác nhau. Ví dụ folder gốc ở ổ D:\Thumucgoc. Em muốn copy những file excel *.xls mà tên file có chứa ký tự AE0A đến 1 địa chỉ khác ví dụ như D:\Thumucloc
Vì công việc cũng gấp mà lọc bằng tay thì rất là nhiều, mong anh chị anh rành giúm em với ạ. em cảm ơn anh chị nhiều
 
Hệ điều hành cũng làm được, cần gì phải phức tạp hóa vấn đề.\

Vào D:\Thumucgoc, trong ô Search (góc trên bên phải) bạn đánh *.AE0A*.xls
Máy tính sẽ lọc ra các file excel mà tên file chứa chuỗi ký tự AE0A
Chọn các files đó, rồi Copy/Paste sang thư mục khác.
 
Vấn đề là ở chỗ window chỉ cho copy số lượng ít thôi @nvson tầm 2000 file đổ lại. đằng này số lượng hơn 20000 thì không thể dùng win nên mình mới phải dùng cách này.
 
Vấn đề là ở chỗ window chỉ cho copy số lượng ít thôi @nvson tầm 2000 file đổ lại. đằng này số lượng hơn 20000 thì không thể dùng win nên mình mới phải dùng cách này.
Nếu dùng lệnh thì mình chỉ có copy tất cả file như bạn nói nhưng nó kèm cả subfolder (folder con) cơ.
Còn dồn hết tất cả các file vào 1 folder thui thì VBA đc ko?
 
Nếu dùng lệnh thì mình chỉ có copy tất cả file như bạn nói nhưng nó kèm cả subfolder (folder con) cơ.
Còn dồn hết tất cả các file vào 1 folder thui thì VBA đc ko?
chính xác như bạn nói lun. Mình cũng đang dùng 1 file bat nó cho phép copy nhưng nó copy lun cả subfolder.
Nếu làm VBA như bạn nói thì có lọc được những đuôi khác ngoài *.xls không bạn? Nếu được thì quá ngon rùi.
 
chính xác như bạn nói lun. Mình cũng đang dùng 1 file bat nó cho phép copy nhưng nó copy lun cả subfolder.
Nếu làm VBA như bạn nói thì có lọc được những đuôi khác ngoài *.xls không bạn? Nếu được thì quá ngon rùi.

Muốn đuôi gì mà chả được... Quan trọng là bạn tự biết chế biến lại thôi... Không tin bạn search trên GPE ra cả 1 đống code VBA cho cái việc này....--=0--=0--=0
 
chính xác như bạn nói lun. Mình cũng đang dùng 1 file bat nó cho phép copy nhưng nó copy lun cả subfolder.
Nếu làm VBA như bạn nói thì có lọc được những đuôi khác ngoài *.xls không bạn? Nếu được thì quá ngon rùi.
Nếu Copy Files thì sử dụng xcopy hay Robocopy kết hợp với Fso nữa thì tuyệt vời Ông mặt trời ....Tìm trong mớ bài của mình cũng có ... hay Search GPE .... ra 1 đống
 
Nếu Copy Files thì sử dụng xcopy hay Robocopy kết hợp với Fso nữa thì tuyệt vời Ông mặt trời ....Tìm trong mớ bài của mình cũng có ... hay Search GPE .... ra 1 đống

Đơn giản thì dùng FSO như này với iu cầu tại #1 thôi

Mã:
Public Sub GPE()
Application.ScreenUpdating = False
Application.DisplayAlerts = False
Dim ChonO As Object, Tu As String, Den As String
Dim Fil As Object, TypeF As String, FullName As String
Tu = "D:\Thumucgoc\": Den = "D:\Thumucloc\"
Set ChonO = CreateObject("Scripting.FileSystemObject")
For Each Fil In ChonO.GetFolder(Tu).Files
    TypeF = ChonO.GetExtensionName(Fil)
    FullName = ChonO.GetAbsolutePathName(Fil)
    If TypeF Like "xls" Then
        If FullName Like "*AE0A*" Then
            ChonO.copyfile FullName, Den
        End If
    End If
Next Fil
Application.DisplayAlerts = True
Application.ScreenUpdating = True
End Sub

P/s: Chủ topic muốn copy và lọc lại đuôi file nào thì chỉ việc edit dòng này : If TypeF Like "xls" Then => "xls" thành pdf, hay txt, hay cái khác tùy thích...
 
Lần chỉnh sửa cuối:
Nếu Copy Files thì sử dụng xcopy hay Robocopy kết hợp với Fso nữa thì tuyệt vời Ông mặt trời ....Tìm trong mớ bài của mình cũng có ... hay Search GPE .... ra 1 đống
Bác kieu manh ơi, em cũng dung robocopy voi FSO nhưng có 2 vấn đề là:
1. trong robocopy em ko tìm ra đc cách copy mà chỉ move
2. mỗi lần chạy robo với 1 sub folder thì command nó hiện nên rất nhiều (với nhiều subfolder), 1 lúc sau nó mới tự tắt hết (do chạy nhiều cmd quá)
Bác gửi file cho em thọ giáo với
File của em
 

File đính kèm

  • GopFile.xls
    36 KB · Đọc: 14
Bác kieu manh ơi, em cũng dung robocopy voi FSO nhưng có 2 vấn đề là:
1. trong robocopy em ko tìm ra đc cách copy mà chỉ move
2. mỗi lần chạy robo với 1 sub folder thì command nó hiện nên rất nhiều (với nhiều subfolder), 1 lúc sau nó mới tự tắt hết (do chạy nhiều cmd quá)
Bác gửi file cho em thọ giáo với
File của em
Bạn dùng /mov là nó copy file trong Folder nguon xong là nó xóa hết trừ file đang chạy...Bạn sửa lại là /s thì nó không xóa Files trong Folder nguon

/MIR là tạo ra Folder giống nguon
...............................

Link bác bill
https://technet.microsoft.com/en-us/library/cc733145(v=ws.10).aspx

Câu 2 mình chưa thử ...Bạn duyệt Folder kiểu đệ quy xem....
 
Lần chỉnh sửa cuối:
Bạn dùng /mov là nó copy file trong Folder nguon xong là nó xóa hết trừ file đang chạy...Bạn sửa lại là /s thì nó không xóa Files trong Folder nguon

/MIR là tạo ra Folder giống nguon
...............................

Link bác bill
https://technet.microsoft.com/en-us/library/cc733145(v=ws.10).aspx

Câu 2 mình chưa thử ...Bạn duyệt Folder kiểu đệ quy xem....

em thi search cái này hay hơn: http://ss64.com/nt/robocopy.html
MIR va /S ko dc bác ah, vì nó sẽ copy cả subfolder. em thử hết rùi, chỉ có mov hoac move là hoặt đọng như ý muốn, nếu như thế thì phải copy folder gốc để dự phòng khi có bất trắc.

Cái thứ 2 thì em cũng chưa hiểu ý bác lăm. hi
 
em thi search cái này hay hơn: http://ss64.com/nt/robocopy.html
MIR va /S ko dc bác ah, vì nó sẽ copy cả subfolder. em thử hết rùi, chỉ có mov hoac move là hoặt đọng như ý muốn, nếu như thế thì phải copy folder gốc để dự phòng khi có bất trắc.

Cái thứ 2 thì em cũng chưa hiểu ý bác lăm. hi
thì tùy người sử dụng mà viết code thôi ...nếu copy trong folder cha thôi thì code đơn giản ....nếu cả cha con cháu chắt nhà nó mà không xác định có mấy tầng lớp thì dùng đệ quy mà duyệt Folder vây...

Sửa lại code của bạn chỉ Copy Folder cha thôi cho nó gon khỏi Fso gì hết
Mã:
Public Sub RobocopyFiles(ByVal FolderCopy As String, ByVal FolderPaste As String)
    Shell ("ROBOCOPY " & """" & FolderCopy & """" & " " & """" & FolderPaste & """" & " /S")
End Sub

Bạn thêm cái chữ to màu đỏ nữa thì bạn có chạy n+1 lần nó cũng không báo cmd nữa
Shell ("ROBOCOPY " & """" & FolderCopy & """" & " " & """" & FolderPaste & """" & " /S"), vbHide
 
Lần chỉnh sửa cuối:
Các bác cứ code với kiếc, dùng trình duyệt tập tin Total Commander là xong.
 
Lần chỉnh sửa cuối:
thì tùy người sử dụng mà viết code thôi ...nếu copy trong folder cha thôi thì code đơn giản ....nếu cả cha con cháu chắt nhà nó mà không xác định có mấy tầng lớp thì dùng đệ quy mà duyệt Folder vây...

Sửa lại code của bạn chỉ Copy Folder cha thôi cho nó gon khỏi Fso gì hết
Mã:
Public Sub RobocopyFiles(ByVal FolderCopy As String, ByVal FolderPaste As String)
    Shell ("ROBOCOPY " & """" & FolderCopy & """" & " " & """" & FolderPaste & """" & " /S")
End Sub

Bạn thêm cái chữ to màu đỏ nữa thì bạn có chạy n+1 lần nó cũng không báo cmd nữa
Shell ("ROBOCOPY " & """" & FolderCopy & """" & " " & """" & FolderPaste & """" & " /S"), vbHide
Cảm ơn bác về cái vbHide, còn " /S" thì bác coi lại nhé. với lại bài toán ở đây là có nhiều subfolder nhé bác.
 
Ý em là copy mỗi file thui, nhử yêu cầu #1 ay a
Vậy có 2 cách sau:
1/ sử dụng cmd mấy hàm Anh Ndu viết đó ....cách này nhanh nhất
2/ Sử dụng Fso duyệt đệ quy lấy hết File trong Folder con cháu paste qua Folder khác ko phải sử dung thêm Robocopy nữa
 
Vậy có 2 cách sau:
1/ sử dụng cmd mấy hàm Anh Ndu viết đó ....cách này nhanh nhất
2/ Sử dụng Fso duyệt đệ quy lấy hết File trong Folder con cháu paste qua Folder khác ko phải sử dung thêm Robocopy nữa
Thực sự em mới vô diễn đàn từ cuối 2015 nên ko rõ cách của anh Ndu tn.
Còn ý thứ 2 thì đó chính là em định làm theo cái đó.
@anhthoichoem. Nếu bạn chửa tìm ra phương án tối ưu, thì bạn làm thế này nhé:
1. chạy file bat của bạn, để copy file xls của bạn, như bạn nói nó vẫn còn subfolder.
nếu ko bạn dùng command sau:
ROBOCOPY "Folderbandau" "foldertrunggian" *AE0A*.xls /MIR

2. Sau b1, thì bạn dùng file này, để move tất cả file xls từ folder có đc sau chạy file bat đó sang folder đích.

Note: Nói thêm về robocopy: tại sao nên dùng robocopy, vì tốc độ của nhanh hơn rất nhiều copy thông thường, nên nếu bạn có nhiều file, và file nặng, thì dùng nó là rất ok.
 

File đính kèm

  • GopFile.xls
    34 KB · Đọc: 15
Web KT
Back
Top Bottom