Labels

[BatchScript] Đổi tên file theo định dạng đơn giản bằng BatchScript


Chắc hẳn đã có lần bạn muốn đổi tên file ảnh, video, audio,... theo một format nhất định nào rồi đúng không. Thật ra windows cũng có cung cấp cho ta cách đổi tên file nhanh theo một định dạng ta đặt ra.

Ví dụ tôi có 1 folder chứa nguyên ảnh định dạng .png


Tuy nhiên tên rất lộn xộn, giờ tôi muốn đặt tên bọn chúng theo 1 format ví dụ IMG1.png, IMG2.png,... Cách làm đó là chọn toàn bộ ảnh nhanh bằng phím tắt Ctrl + A, sau đó Right Click chọn mục Rename hoặc nhấn phím F2 trên bàn phím.

Nhập tên mà bạn muốn đổi và kết thúc bằng phím Enter


Như bạn thấy tên file đã theo 1 định dạng nhất định, tuy nhiên dấu cách ở tên file là điều tôi ghét nhất. Vì sao ư, khi upload lấy link ảnh nó sẽ bị mã hóa nhìn rất khó chịu, hoặc khi bạn trỏ đường dẫn tới nó thường phải thêm cặp dấu " ", nếu không sẽ báo sai đường dẫn.

Giới thiệu vậy thôi giờ mới là nội dung chính của bài viết. Chỉ mất chưa tới 10 dòng code batch dưới đây, bạn có thể tùy thích lựa chọn định dạng tên file theo ý thích của mình với số đếm từ 1 tới file cuối cùng cùng định dạng

Vẫn những ảnh trên bây giờ tôi muốn đặt theo định dạng hung1001.com_1.png, hung1001.com_2.png,....


Mất chưa tới 1 phút để làm điều đó.

Trước tiên bạn tạo 1 file batch bằng cách mở RUN phím tắt Windows+R và gõ vào notepad. Nội dung file sẽ như sau

:: Author - Hung Hoang
@echo off
pushd %~dp0
set /a var=0
setlocal enabledelayedexpansion
for /f %%a in ('dir /b *.phan_mo_rong') do (
 set /a var+=1
 ren "%%a" "[ten_tuy_thich]!var!.phan_mo_rong"
)
exit /b

Trong đó phan_mo_rong (bắt buộc) chính là phần sau dấu chấm của tên file (.mp3, .mp4, .png, .jpg,....) Nếu như bạn chưa bật tính năng hiện phần mở rộng thì làm như sau


[ten_tuy_thich] có thể có hoặc không tùy bạn
!var! biến này sẽ tăng từ 1 tới file cuối cùng của các file có cùng phan_mo_rong, bạn không được bỏ nó vì trong 1 thư mục không thể có 2 file cùng tên và biến này là tác nhân không tạo nên sự trùng lặp

Như phân tích và ví dụ trên nội dung file bat của tôi sẽ là
@echo off
pushd %~dp0
set /a var=0
setlocal enabledelayedexpansion
for /f %%a in ('dir /b *.png') do (
 set /a var+=1
 ren "%%a" "hung1001.com_!var!.png"
)
exit /b
Lưu lại với đuôi .bat hoặc .cmd và đặt nó nằm cùng thư mục với những file muốn thay đổi tên.

Chạy sau đó refresh lại thư mục để thấy sự thay đổi.

Chỉ khoảng 10 dòng code nhưng nó giúp bạn tiết kiệm được rất nhiều thời gian và công sức đúng không.

Để lại bình luận nếu gặp khó khăn, chia sẻ nếu thấy hữu ích

Good Luck !
Bạn được tự do bày tỏ quan điểm nhưng nghiêm cấm spam
  • Chèn ảnh theo mẫu [img]link[/img]
  • Chèn video Youtube theo mẫu [youtube]link[/youtube]
  • Chèn code theo mẫu [pre]code[/pre]. Lưu ý: mã hóa code trước khi bình luận

    1. Mình tạo file bat như hướng dận rồi chạy mà mà bị lỗi
      này [img]https://i.imgur.com/qMJkDc9.png[/img]

      ReplyDelete
      Replies
      1. Hi, bạn cung cấp chi tiết hơn thông tin được không nhỉ. Ví dụ như nội dung file .bat, vị trí file và các file muốn đổi tên

        Delete