2012-07-18 34 views
10

Tôi có danh sách các tệp zip có ngày và thời gian được nối thêm như yyyymmdd_hhmmss_Demos.zip. Bây giờ làm thế nào để có được tệp zip được thêm gần đây nhất trong thư mục nguồn. Tôi cần phải sao chép tập tin này trong mục tiêu sử dụng lệnh copy.Cách lấy tệp gần đây nhất bằng tập lệnh batch trong windows

Tôi đã tìm thấy một số thông tin về forfiles, nhưng không có ý tưởng về cách hoàn thành nó trong vài giây.

+1

thể trùng lặp của [Làm thế nào để viết một loạt kịch bản Windows để sao chép các tập tin mới nhất từ ​​một thư mục?] (Http://stackoverflow.com/questions/97371/làm thế nào-do-i-ghi-một-windows-batch-script-to-copy-the-mới nhất-file-từ-một-thư mục) Nó không rõ ràng cho dù bạn muốn tập tin được sửa đổi gần đây nhất, tập tin gần đây nhất được thêm vào vào thư mục hoặc tệp có yyyymmdd_hhmmss cao nhất. –

Trả lời

19

Bạn có thể sử dụng

pushd D:\a 
for /f "tokens=*" %%a in ('dir /b /od') do set newest=%%a 
copy "%newest%" D:\b 
popd 
+0

vì mục đích đơn giản, tôi chỉ cần đặt một tập hợp các tập tin văn bản trong một thư mục và đặt mục tiêu làm thư mục b và do đó đã viết lệnh này cho/f "tokens = *" %% a in ('dir D: \ a/b/od ') làm thiết lập mới nhất = %% a sao chép "% mới nhất%" D: \ b Nhưng điều này không làm việc cho tôi .. những gì là sai – azzaxp

+0

@azzaxp Hãy thử câu trả lời cập nhật của tôi. Có vẻ như thư mục là vấn đề vì một lý do nào đó, tôi không chắc tại sao. –

+0

'dir/b/od' cũng sẽ liệt kê các subdir, nếu có. Tôi nghĩ rằng bạn nên loại trừ chúng bằng cách sử dụng '/ a-d' chuyển đổi (trừ khi tất nhiên OP muốn sao chép subdirs cũng) – wmz

0
pushd \\ryap\CONTROL_DATOS 
for /f "tokens=*" %%a in ('dir \\ryap\CONTROL_DATOS /b /od') do set newest=%%a 
Xcopy/Y "\\ryap\CONTROL_DATOS\%newest%" "D:\TXT_SOURCES\" 
popd 
+1

Dán một số mã mà không giải thích nó làm gì không hữu ích. Bạn có thể thêm mô tả không? – SaeX

Các vấn đề liên quan