Đây là tập lệnh. Chỉ cần đặt kịch bản trong thư mục của bạn và chạy nó.
@echo off & setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *') do (
if not "%%~nxi"=="%~nx0" (
ren "%%i" "!a!"
set /a a+=1
)
)
Nếu bạn muốn giữ lại các phần mở rộng, tức là đổi tên "IMG-12223.jpg", "IMG-12224.jpg", vv để "1.jpg", "2.jpg", vv, bạn có thể sử dụng tập lệnh sau.
@echo off & setlocal EnableDelayedExpansion
set a=1
for /f "delims=" %%i in ('dir /b *.jpg') do (
ren "%%i" "!a!.jpg"
set /a a+=1
)
[Cập nhật] Here're giải thích cho các dòng nêu trong bình luận của Jack.
setlocal EnableDelayedExpansion
Nói chung, chúng tôi muốn biến a
bị trì hoãn mở rộng khi nó được thực hiện nhưng không phải là dòng được đọc. Nếu không có nó, biến số a
không thể nhận được giá trị gia tăng nhưng luôn luôn 1.
Để biết chi tiết về EnableDelayedExpansion, vui lòng tham khảo câu trả lời https://stackoverflow.com/a/18464353/2749114.
for /f "delims=" %%i in ('dir /b *.jpg')
Đây dir
với /b
tùy chọn, liệt kê chỉ nộp tên của tất cả các file jpg.
Vòng lặp for
truyền tải và đổi tên tất cả các tệp jpg.
Đối với tùy chọn delims
, vì ký tự dấu phân cách mặc định là khoảng trắng, không có tùy chọn delims=
, nó không thành công với tệp hình ảnh có dấu cách trong tên tệp. I E. đối với tệp hình ảnh có tên "img with spaces.jpg", không có tùy chọn, giá trị của %%i
là "img" nhưng không phải là toàn bộ tên "img with spaces.jpg", không chính xác.
Đối với for
vòng lặp, vui lòng tham khảo trang http://ss64.com/nt/for_f.html.
tôi có thay đổi nó để if not "%%~nxi"=="%~nx0"
được chính xác hơn. Và các mã được đính kèm đã được cập nhật.
Thực tế được sử dụng để tránh đổi tên chính tệp bat. Nếu chúng ta giới hạn việc đổi tên chỉ khi các tập tin "jpg", thì dòng đó là không cần thiết.
%%~nxi
là tên tệp có phần mở rộng cho mỗi tệp được duyệt qua. Và %~nx0
là tệp dơi đang chạy với phần mở rộng. Để biết chi tiết, vui lòng tham khảo trang DOS BAT file equivalent to Unix basename command?.
Chỉ cần gợi ý: Trình xem đa phương tiện miễn phí [IrfanView] (http://www.irfanview.com/) đã tích hợp [đổi tên hàng loạt] (http://graphicssoft.about.com/cs/renamers/ht /irfanviewrename.htm) tính năng đổi tên hình ảnh bằng bộ đếm. Trình quản lý tệp shareware [Total Commander] (http://www.ghisler.com/) có tính năng [multi-rename] (http://www.ghisler.com/advanced.htm#tutorial_rename) với nhiều tùy chọn hơn và rất dễ sử dụng. Nó không có ý nghĩa trong quan điểm của tôi bằng cách sử dụng một tập tin batch cho một nhiệm vụ đổi tên tập tin không được thực hiện tự động như nhiệm vụ theo lịch trình. – Mofi