Tôi có một thư mục chứa hàng ngàn .pdf mỗi tệp được đặt tên theo số tài khoản 5 hoặc 6 chữ số. Tôi có một tập lệnh sẽ tạo một thư mục có cùng số tài khoản và di chuyển tệp vào đó.
echo ON
Title Move files Routine
setlocal enabledelayedexpansion
pushd D:\test1\source\
for /f "tokens=*" %%1 in ('dir /a-d /b D:\test1\source\*.pdf') do (
set filename=%%1&set dirname=!filename:~0,6!
if not exist D:\test1\source\!dirname! (md D:\test1\source\!dirname!)
move %%1 D:\test1\source\!dirname!\
)
PAUSE
Tuy nhiên, tôi cần chạy tập lệnh này hàng ngày vì tập tin mới được thêm vào thư mục nguồn và nếu tập lệnh di chuyển một tập tin vào một thư mục đã có một tập tin cùng tên, nó sẽ ghi đè lên nó thay vì đổi tên nó. Làm thế nào tôi có thể điều chỉnh kịch bản của mình để giải quyết vấn đề này. Lựa chọn của tôi dường như là
- chắp thêm vào tập tin hiện có (điều này dường như yêu cầu phần mềm bổ sung)
- Đổi tên (ví dụ: 123456.pdf thành 123456_001.pdf)
- Thêm ngày vào tên tệp (ví dụ: 123456.pdf thành 123456_MMMMddyyyy.pdf)
Tôi ổn với bất kỳ tùy chọn nào trong số này, tôi chỉ không biết làm thế nào để đưa nó vào kịch bản. Bất kỳ sự giúp đỡ nào cũng được đánh giá cao.