Điểm:0

Cần trợ giúp trong việc Di chuyển tệp vào thư mục sao lưu ngoại trừ 10 tệp cuối cùng dựa trên tệp TÊN không được sửa đổi ngày

lá cờ gb


Tôi gặp tình huống máy chủ đang tạo tệp nhật ký (MJ00001-MJ000x) và tôi muốn di chuyển tất cả tệp vào thư mục sao lưu nhưng cần giữ 10 tệp cuối cùng trong đó để lấy tệp lưu trữ. Tôi đã xem robocopy và Powershell Move-Item nhưng vấn đề là ngày sửa đổi luôn là ngày hiện tại vì máy chủ sẽ tìm kiếm chúng nếu chúng nằm trong thư mục (do đó tôi không thể sử dụng di chuyển giữ 10 ngày cuối cùng dựa trên ngày sửa đổi). Tôi thích một phương pháp powershell có thể xem tên tệp và di chuyển tất cả ngoại trừ 10 tệp được đánh số cao nhất vì tôi có thể đưa tệp đó vào tập lệnh để dừng dịch vụ máy chủ rồi khởi động lại sau khi di chuyển.

Cấu trúc tệp ví dụ bên dưới:
Nằm trong C:\Thư mục
mainfile.ext
MJ00001.ext
MJ00002.ext
MJ00003.ext
đến MJ00257.ext

Trong ví dụ này, tôi muốn chuyển MJ0001.ext - MJ00247.ext sang D:\Other_Folder\

Lưu ý rằng tôi muốn giữ mainfile.ext trong thư mục và chỉ các tệp MJ có tên cao nhất.

Có ai giúp đuợc không?

Điểm:0
lá cờ in

Điều đó thực sự khá dễ dàng bằng cách sử dụng -SkipLast lập luận của Chọn đối tượng:

Get-ChildItem -Path "C:\Folder" -Loại trừ "mainfile.ext" | Sắp xếp đối tượng |
    Select-Object -SkipLast 10 |Move-Item -Destination "D:\Other_Folder\"
lá cờ gb
Tôi sẽ thử ngay bây giờ và upvote nếu tất cả đều hoạt động. Cảm ơn.
lá cờ gb
Nó dường như không loại trừ tệp mainfile.ext và cũng di chuyển tệp đó đến thư mục đích.
lá cờ in
Sau đó, bạn có một lỗi đánh máy ở đâu đó. Tôi đã thử nghiệm điều này trước khi đăng nó.
lá cờ gb
Đây là những gì tôi đã cố gắng `Nhận mục "C:\temp\Source" | Get-ChildItem -Loại trừ "mainfile.txt" | Sắp xếp đối tượng | Chọn-Đối tượng -SkipLast 10 |Move-Item -Destination "C:\temp\Destination\" ` Khi tôi mở thư mục c:\temp\source, tôi có MJ000012.txt-MJ00021 (10 tệp cuối cùng) nhưng tệp mainfile.txt ban đầu cũng bị xóa.
lá cờ gb
nó giống như loại trừ không hoạt động. khi tôi gõ từng phần lệnh và yêu cầu nó `Nhận mục "C:\temp\Source" | Get-ChildItem` tôi nhận được tất cả các tệp trong thư mục hiển thị. sau đó khi tôi thêm -Exclude "mainfile.txt" nó vẫn hiển thị cùng một đầu ra (tôi mong đợi mainfile.txt không hiển thị ở đầu ra)
lá cờ in
Buồn cười, bây giờ tôi nhận được kết quả tương tự như bạn. Tôi có thể thề rằng điều đó đã không xảy ra ngày hôm qua. Tuy nhiên, hãy thử sửa đổi của tôi. Điều này chắc chắn làm việc cho tôi.
lá cờ gb
chúng tôi đã đi đến cùng một kết luận cùng một lúc .. Get-Childitem -Path đã sửa nó cho tôi ... `Get-ChildItem -Path C:\temp\source -Loại trừ "mainfile.txt" | Sắp xếp đối tượng | Select-Object -SkipLast 10 |Move-Item -Destination C:\temp\Destination`

Đăng câu trả lời

Hầu hết mọi người không hiểu rằng việc đặt nhiều câu hỏi sẽ mở ra cơ hội học hỏi và cải thiện mối quan hệ giữa các cá nhân. Ví dụ, trong các nghiên cứu của Alison, mặc dù mọi người có thể nhớ chính xác có bao nhiêu câu hỏi đã được đặt ra trong các cuộc trò chuyện của họ, nhưng họ không trực giác nhận ra mối liên hệ giữa câu hỏi và sự yêu thích. Qua bốn nghiên cứu, trong đó những người tham gia tự tham gia vào các cuộc trò chuyện hoặc đọc bản ghi lại các cuộc trò chuyện của người khác, mọi người có xu hướng không nhận ra rằng việc đặt câu hỏi sẽ ảnh hưởng—hoặc đã ảnh hưởng—mức độ thân thiện giữa những người đối thoại.