Làm cách nào để sao lưu và khôi phục chỉ tem tệp (ngày & giờ) của nhiều tệp trong một thư mục cùng một lúc?


1

Tôi muốn thử lại tất cả bộ sưu tập nhạc của mình (MP3, OGG, v.v.) với thông tin phát lại, nhưng tôi không muốn họ mất dấu thời gian tệp gốc vì đôi khi tôi muốn biết khi tôi thêm tệp vào bộ sưu tập của mình vì nó giúp tôi tìm chúng bằng cách sắp xếp chúng trong trình quản lý tệp yêu thích của tôi theo ngày.

Vì vậy, đây là câu hỏi của tôi: Có một công cụ (hoặc một cam kết mà tôi có thể sử dụng trong một tệp bó) mà tôi có thể sử dụng để sao lưu hàng loạt chỉ các dấu thời gian của tất cả các tệp, trước khi tôi thực hiện thử lại và sau đó có thể để khôi phục lại dấu thời gian tập tin của họ trở lại? Nếu nó có thể được thực hiện đệ quy cho tất cả các thư mục bên dưới, nó sẽ rất tuyệt!


trên hệ điều hành nào?
John T

Xin lỗi về điều đó, Windows 7 x64.
Saxtus

1
bạn không thể thay đổi cột ngày / giờ để hiển thị thời gian tạo chứ không phải thời gian sửa đổi lần cuối ? trong winXP, bạn có thể nhấp chuột phải vào tên cột trong trình quản lý tệp tiêu chuẩn và chọn cột "Ngày tạo" để lấy dữ liệu đó. quản lý tập tin tính năng hơn có thể bao gồm cả khả năng này là tốt.
quixote quixote

Câu trả lời:


2

Giả sử bạn sử dụng Windows, bạn có thể làm điều đó với TakeCommand Console LE .

Để sao lưu dấu thời gian, sử dụng lệnh sau:

pdir /(fpn"|"dy/m/d"|"th:m:s) /s /a:-d * >c:\flist.txt

Điều này sẽ tạo một tệp (ở đây c:\flist.txt) chứa tên tệp (bao gồm cả đường dẫn) và ngày của chúng (ở định dạng y / m / d) và thời gian (ở định dạng h: m: s). Điều này /slàm cho nó đệ quy, vì vậy nó sẽ nhận các tập tin trong thư mục con.

Để tránh các vấn đề với không gian trong thư mục và tên, phiên bản lệnh này sử dụng "|" ký tên là dấu phân cách cho các trường.

Tệp mẫu được tạo bởi lệnh trên:

[C:\Test]type c:\flist.txt
C:\Downloaded Files\JPSoft\TCCLE10\English.dll|2009/08/29|13:11:36
C:\Downloaded Files\JPSoft\TCCLE10\French.dll|2009/08/29|13:11:38
C:\Downloaded Files\JPSoft\TCCLE10\German.dll|2009/08/29|13:11:38
C:\Downloaded Files\JPSoft\TCCLE10\license.txt|2009/01/25|20:09:04
...

Để khôi phục, sử dụng lệnh:

for /f "tokens=1,2,3 delims=|" %a in (@c:\flist.txt) do touch /d%b /t%c "%a"

Lệnh này sẽ phân tích tệp được lưu trữ ở trên và chạy một số touchlệnh, đặt lại ngày và giờ đã lưu cho các tệp. "|" dấu hiệu được chỉ định là dấu phân cách cho các trường.


Trong quá trình khôi phục, tôi gặp nhiều lỗi như sau và không có gì được khôi phục: "I: \ Media \ Audio \ MP3 \ EAGLES ~ 1.MP3" TCC: (Sys) Hệ thống không thể tìm thấy tệp được chỉ định. mặc dù trong tệp flist.txt, bản ghi của tệp tồn tại dưới dạng: I: \ Media \ Audio \ MP3 \ EAGLES ~ 1.MP3 1998/06/07 21:51:20 Tôi đang làm gì sai? Tiền thanx.
Saxtus

1
Thật khó để nói. Nó làm việc tốt cho tôi. Có lẽ nó liên quan đến việc sử dụng tên tệp ngắn (với ~ 1) để tránh các vấn đề với khoảng trắng trong thư mục và tên tệp. Tôi đã thay đổi cả hai lệnh để chúng có thể đối phó với tên tệp dài, bao gồm cả khoảng trắng, bằng cách sử dụng "@" làm dấu phân cách (thay vì khoảng trắng theo mặc định).
Snark

Nó hoạt động khi tôi sử dụng "|" thay vì "@" là dấu phân cách (như một số tên tệp của tôi đã có "@" trong đó - dù sao đó cũng là một ký tự được phép, không giống như "|"). Bạn có thể muốn cập nhật câu trả lời của mình với dấu phân cách mới, vì vậy tôi có thể đặt câu trả lời là câu trả lời được chấp nhận. Cảm ơn bạn!
Saxtus
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.