Câu trả lời:
Thật kỳ lạ, tôi chỉ đang chạy một dự án để thu dọn dữ liệu cũ / lịch sử của công ty.
Tôi đang sử dụng tập lệnh powershell mà tôi đã viết như dưới đây để xuất ra tệp CSV cho tất cả các tệp mà nó đi qua. Sau đó tôi sử dụng Excel để sắp xếp dữ liệu cho cột nào hữu ích nhất đối với tôi.
Get-ChildItem C:\*path* -Recurse | Select-Object Name, CreationTime, LastAccessTime, Directory, @{Name="Kbytes";Expression={$_.Length / 1Kb}} | Export-CSV xxxxxxx.csv
Bạn có thể sao chép ở trên sau đó dán vào notepad, thay đổi đường dẫn đến nơi lưu tệp của bạn (cục bộ là tốt nhất mặc dù ổ đĩa được ánh xạ sẽ hoạt động) sau đó lưu thành "filename.ps1"
Nếu bạn gặp phải bất kỳ lỗi nào khi cố gắng chạy tập lệnh powershell, hãy cho tôi biết và tôi có thể tư vấn cho phù hợp.
PowerShell:
Get-ChildItem \ -Recurse | Sort-Object LastAccessTime | Select-Object FullName, LastAccessTime
Điều này sẽ tìm thấy tất cả các tệp và thư mục trên ổ đĩa hiện tại, sắp xếp chúng theo thứ tự tăng dần vào lần cuối cùng chúng được truy cập, và hiển thị đường dẫn đầy đủ và thời gian truy cập cuối cùng của chúng.
Điều này có thể sẽ mất một lúc, đặc biệt là trên các ổ đĩa hệ thống hoặc các ổ đĩa khác có số lượng lớn tệp và / hoặc thư mục. Tuy nhiên, bạn không nên sử dụng tiêu chí này một mình khi chọn dọn dẹp các tệp trên ổ đĩa hệ thống hoặc trong khu vực lưu trữ tệp hoặc dữ liệu chương trình - bạn có thể phá vỡ nghiêm trọng mọi thứ nếu bạn làm như vậy. Chỉ sử dụng dữ liệu này cho dữ liệu người dùng như tài liệu, hình ảnh, video, v.v.
PowerShell cũng cung cấp cho bạn nhiều tùy chọn hơn để làm việc với dữ liệu. Vì @CharlesH đã trình bày trong tập lệnh của anh ấy, bạn có thể chuyển đầu ra thành tệp CSV thay vì chỉ để nó ở bàn điều khiển. Bạn cũng có thể thực hiện một số bộ lọc theo kích thước tệp và các thuộc tính khác hoặc định dạng dữ liệu để hiển thị nhiều hơn hoặc ít dữ liệu hơn và hiển thị nó theo cách thân thiện hơn với bạn.
Một cách tiếp cận khác là sử dụng TCC từ http://jpsoft.com/all-doads/doads.html (phiên bản LE miễn phí). Đây là phiên bản được nâng cấp nhiều của CMD, cho phép bạn đặt hàng và chọn theo từng ngày của tệp, ví dụ:
dir /t:a /od - lists files in access time order;
dir /[da1980-1-1,2008-12-31] - selects files not accessed since 2008;
del * /s /[da1980-1-1,2008-12-31] /n - shows deletable files not accessed since 2008;
del * /s /[da1980-1-1,2008-12-31] - deletes files not accessed since 2008.
Lựa chọn phạm vi cũng có thể được sử dụng với copyvà movecác lệnh, nếu bạn muốn lưu trữ tệp thay vì xóa chúng.
Nếu (như tôi) bạn thấy PowerShell hơi nản chí, bạn có thể thích điều này.
Get-ChildItem | Sort-Object LastAccessTime, 2. Get-ChildItem | Where-Object {$_.LastAccessTime.Year -le 2008}, 3. Get-ChildItem | Where-Object {$_.LastAccessTime.Year -le 2008} | Remove-Item -WhatIf, 4 Get-ChildItem | Where-Object {$_.LastAccessTime.Year -le 2008} | Remove-Item.. Cho rằng PowerShell miễn phí 100%, đi kèm với Windows 7+, có các lệnh và tham số thường dễ đọc và dễ phân tích hơn con người so với cú pháp trong câu trả lời này và có hệ thống trợ giúp tích hợp cộng với yêu tinh của cộng đồng trực tuyến hỗ trợ, tôi không chắc làm thế nào nó "đáng ngại" hơn TCC.
DIR /T:A /ODcó thể là quen thuộc với người sử dụng CMD, nhưng tôi không thấy như thế nào DIRcú pháp, hoặc DIRcú pháp lọc nên. DEL /Strong CMD thực hiện một cái gì đó hoàn toàn khác biệt và DIRcũng không DELcó bất kỳ chức năng lọc riêng nào tương tự như những gì được sử dụng ở đây mà tôi biết hoặc có thể tìm thấy.
dircác cuộc gọi Get-ChildItem.) PowerShell cũng có thể sử dụng trực tiếp hầu hết các lệnh CMD gốc khác và nhiều lệnh bên ngoài mà không cần bất kỳ sự trợ giúp đặc biệt nào.
DEL /Sthực hiện tương tự trong TCC như trong CMD (xóa khỏi thư mục hiện tại và thư mục con). Tôi phải nhấn mạnh rằng tôi đã không cố làm suy yếu câu trả lời của bạn bằng bất kỳ cách nào, mà chỉ cố gắng đưa ra một giải pháp thay thế có thể hữu ích cho những người có vấn đề liên quan và không thể sử dụng PowerShell (ví dụ trên Windows trước đó).
Export-CSV!