Cách đổi tên file hàng loạt trên máy tính

Thay vì thao tác thủ công, việc tận dụng PowerShell để đổi tên cho một loạt file trên máy tính chưa bao giờ dễ dàng đến thế.

Lưu ý: nhớ sao lưu dữ liệu trước tiên, để đổi tên lỗi còn có cái mà làm lại :))

Trong quá trình sử dụng, vì nhiều lý do khác nhau mà các tập tin sẽ được lưu tên một cách tùy tiện. Với mình, điều này cũng hết sức bình thường, chả mấy ai để ý tới tên file dài ngắn như nào cả, trừ đặc thù công việc phải đặt tên theo quy định.

Nếu các bạn muốn đổi tên file theo ý muốn với số lượng lớn thì việc này không thể thực hiện bằng tay mà phải thông qua một công cụ nào đó. Sau một hồi mò mẫm, mình nhận thấy sẽ có ít nhất 2 giải pháp khả quan có thể giúp ta làm được điều này.

  • Giải pháp 1: Sử dụng các phần mềm đổi tên trên máy tính như File Renamer Basic, Advanced Renamer, Bulk Rename Utility
    – Áp dụng để đổi tên file với cấu trúc phức tạp
    – Nhìn chung mấy phần mềm này hơi khó sử dụng, có cái còn bắt trả phí 😅
  • Giải pháp 2: Sử dụng câu lệnh trên PowerShell
    PowerShell là một công cụ có sẵn trên Windows, mở lên là vào việc luôn :))
    – Thao tác cũng khá đơn giản, chỉ cần copy – paste câu lệnh vào chạy là xong. Tuy nhiên, chỉ áp dụng với một số trường hợp đổi tên đơn giản

Tùy vào mong muốn đổi tên mà chúng ta sẽ lựa chọn công cụ sao cho phù hợp. Thông thường, mình sẽ ưu tiên PowerShell hơn vì mình thích những gì đơn giản, hạn chế cài đặt loằng ngoằng. Còn về câu lệnh để chạy trên PowerShell thì mình dùng chatGPT nhờ nó tạo luôn cho :))

Các cách để mở PowerShell

Lưu ý
– 3 cách đầu tiên để mở PowerShell trong thư mục hiện tại của File Explorer.
– Nếu bạn muốn mở PowerShell với quyền quản trị, hãy sử dụng cách 4 và 5 nhé!

  • Cách 1: Sử dụng File Explorer (mình chọn cách này)
    Nhấn Shift + nhấp chuột phải vào thư mục muốn mở PowerShell ⇒ trong menu ngữ cảnh, chọn Open PowerShell window here.
  • Cách 2. Sử dụng thanh địa chỉ trong File Explorer
    Nhấn Alt + D hoặc Ctrl + L để vào thanh địa chỉ ⇒ nhập powershell và nhấn Enter.
  • Cách 3: Sử dụng hộp thoại Run
    Nhấn Windows + R để mở hộp thoại Run ⇒ nhập powershell và nhấn Enter.
  • Cách 4: Sử dụng Task Manager
    Mở Task Manager (Ctrl + Shift + Esc) ⇒ ở trên menu chọn FileRun new task ⇒ Nhập powershell, đánh dấu vào ô Create this task with administrative privilege (nếu cần quyền quản trị) ⇒Nhấn OK.
  • Cách 5: Sử dụng phím tắt
    Nhấn Win + X, sau đó nhấn I để mở PowerShell.
    Hoặc nhấn Win + X, sau đó nhấn A để mở PowerShell với quyền quản trị.
Mở PowerShell bằng Task Manager

Trường hợp 1: Thay đổi ký tự hàng loạt trong tên file

Do sơ ý nên nên mình đã lưu nhầm tên của một loạt file trên máy tính, thay vì sử dụng ký tự “-” như công việc yêu cầu thì mình lại đặt hết là “_”.

Với trường hợp này, mặc dù số lượng tập tin tương đối lớn (lên tới hàng nghìn) nhưng thao tác chỉ đơn giản là thay đổi các ký tự nên chưa khó lắm, PowerShell vẫn chiến tốt.

Danh sách file ban đầu đang dùng ký tự “_” trong tên

Danh sách bên dưới có 6 thư mục, trong mỗi thư mục sẽ là các file mà mình cần đổi tên.

Mở PowerShell trên thư mục 39

Cửa sổ Windows PowerShell xuất hiện, copy – paste câu lệnh dưới đây vào và chạy.
Nhờ ChatGPT nên việc tìm kiếm những câu lệnh kiểu như thế này trở nên dễ dàng hơn nhiều.

Get-ChildItem -File | Where-Object { $_.Name -like “_” } | ForEach-Object { $newName = $_.Name -replace “_”, “-” Rename-Item $_.FullName $newName }

Giao diện của Windows PowerShell

Kiểm tra lại thì thấy toàn bộ các file đã được sửa tên, may thế vì lúc đầu định gõ bằng tay rồi đấy :)) Các thư mục còn lại mình cũng làm tương tự là xong.

Danh sách file sau khi đổi tên hàng loạt bằng PowerShell

Trường hợp 2: Đổi tên file hàng loạt theo thứ tự tăng dần

Lần này, mình sẽ thử đổi tên với cấu trúc phức tạp hơn. Tên file mới sẽ bao gồm 3 trường thông tin được phân cách với nhau bởi ký tự “-“. Đợi xem PowerShell làm việc như thế nào nhé!

Danh sách test với các file đặt tên tùy ý

Gửi yêu cầu cho ChatGPT

Cung cấp thông tin càng chi tiết, sát với yêu cầu đổi tên thì đoạn mã nhận được từ ChatGPT sẽ càng chính xác. Có lẽ đây mới là thao tác quan trọng nhất trong việc đổi tên :)) Trên thực tế, mình phải thử tới lần thứ 5 thì mới có được đoạn mã như mong muốn.

Sử dụng PowerShell để đổi tên cho hàng loạt file theo cấu trúc sau
[trường thông tin 1]-[trường thông tin 2]-[trường thông tin 3], trong đó:
– Trường thông tin 1: để cố định là NamCuPeo
– Trường thông tin 2: là số thứ tự, bắt đầu từ 001 và tăng dần
– Trường thông tin 3: là ngày sửa đổi (date modified) theo định dạng dd-MM-yyyy

Đoạn mã do ChatGPT cung cấp

$i = 1
Get-ChildItem -File | Sort-Object LastWriteTime | ForEach-Object {
$ext = $_.Extension
$date = $_.LastWriteTime.ToString(“dd-MM-yyyy”)
$index = “{0:D3}” -f $i
$newName = “NamCuPeo-$index-$date$ext”
Rename-Item -Path $_.FullName -NewName $newName
$i++
}

Tên các file đã được đổi lại theo yêu cầu đặt ra

Qua lần test này, mình nhận thấy PowerShell hoàn toàn có thể làm được rất nhiều yêu cầu phức tạp cho việc đổi tên hàng loạt file. Vấn đề là chúng ta cung cấp được cho nó được đoạn mã thực thi hiệu quả hay không. Việc này chắc để mấy công cụ như chatGPT, Gemini… làm nhỉ ?

Để lại một bình luận

Email của bạn sẽ không được hiển thị công khai. Các trường bắt buộc được đánh dấu *