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

Liên hệ QC
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.
cảm ơn bạn quân lưu nhiều nhé. Mình cũng có tham khảo trên 1 số trang nước ngoài thì có họ note về vấn đề đó thay vì dùng lệnh xcopy nó chép nguyên subfolder thì chỉ cần dùng lệnh copy thui hao hao như này:
for /R D:\GOC %%f in (*.xls) do copy %%f D:\NGUON
 
Mong sự chỉ giáo của bác, chứ em ko rành đệ quy lắm. Còn về Xcopy thì em thấy nó ít option hơn hẳn và bác search trên mạng thì thấy robocopy đc dùng nhiều hơn:

The most important difference is that robocopy will (usually) retry when an error occurs, while xcopy will not. In most cases, that makes robocopy far more suitable for use in a script.

They are both rubbish! XCOPY was older and unreliable, so Microsoft replaced it with ROBOCOPY, which is still rubbish.
Bạn xem lại cú pháp Robocopy

Robocopy [Nguon] [Ðiem den] [File] / Thông so

Nếu Nghiên cứu đệ quy vào link sau coi thêm ....

http://www.giaiphapexcel.com/forum/...i-Thuật-Toán-Đệ-Quy-Trong-Lập-Trình-Với-Excel

Code bạn viết trong đó có bao nhiêu loại Files mặc định nó lấy hết ... Cut hết sang Folder mới
 
Lần chỉnh sửa cuối:
đang rảnh ngồi ko buồn buồn làm cho chủ thớt 1 cục muốn copy cái files nào và chọn tên file dạng nào cũng ok ...._)()(-,,,,,,,

1/ Lưu ý ko copy được Files trong Folder là tiếng việt có dấu vì lần trước làm xcopy chạy lỗi trên Win64 chưa xử lý được ...+-+-+-+

========= Mục Search Options =========

sử dụng toán tử Like vì vậy cần lưu ý như sau:

1/ Phần ExtenFile (là phần mở rộng của File) nếu Copy đuôi file Excel thì Gõ xl*, mọi loại file *

2/ Phần Fullname (là phần tên File ko bao gồm phần mở rộng) nếu Copy tên file có dạng AE0A thì gõ *AE0A*, mọi loại file *

3/ Phần Include sub Folders ...Nếu check vào đó thì nó copy file từ Folder cha ...cháu của cháu nó... Nếu ko check thì chỉ copy file ở folder cha ....

4/ sử dụng thuật toán đệ quy + Fso + cmd nên tốc độ copy khá nhanh ...

Xong Phim ./. /*-*/
 

File đính kèm

  • RoboCopyFiles.rar
    9 KB · Đọc: 23
Lần chỉnh sửa cuối:
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

Thử code này xem có xài được không

PHP:
Sub Main()
Dim fso As Object
Set fso = CreateObject("Scripting.FileSystemObject")
With Application.FileDialog(msoFileDialogFolderPicker)
    If .Show Then GetAllFiles .SelectedItems(1), fso
End With
End Sub
Function GetAllFiles(ByVal StrFolder As String, fso As Object)
Dim objFolder As Object, objSubFolder As Object, File As Object
Set objFolder = fso.GetFolder(StrFolder)
For Each File In objFolder.Files
    If fso.GetExtensionName(File) Like "xls*" Then
        fso.CopyFile fso.getabsolutepathname(File), ThisWorkbook.Path & "\" & File.Name
    End If
Next
For Each objSubFolder In objFolder.SubFolders
    GetAllFiles objSubFolder.Path, fso
Next objSubFolder
End Function
 

File đính kèm

  • CopyFile.xlsb
    17.2 KB · Đọc: 12
Bạn thử file xxx.bat này
Mã:
@echo off
pushd %2
for /r %%a in (*%1*.xls) do copy "%%a"  "%3"
popd
Cách dùng
Mã:
xxx AE0A c:\nguon c:\dich
 
Web KT

Bài viết mới nhất

Back
Top Bottom