Câu trả lời:
for %a in (*) do ren "%a" "00_%a"
Ghi chú:
for
như trên là không nên.Sử dụng như sau trong một cmd
vỏ:
for /f "tokens=*" %a in ('dir /b') do ren "%a" "00_%a"
Trong một tệp bó (thay thế %
bằng %%
):
for /f "tokens=*" %%a in ('dir /b') do ren "%%a" "00_%%a"
Ghi chú:
Điều quan trọng là bạn sử dụng
FOR /F
và không đơn giảnFOR
.Tập
FOR /F
hợp toàn bộ kết quả củaDIR
lệnh trước khi bắt đầu lặp, trong khi đơn giảnFOR
bắt đầu lặp lại sau khi bộ đệm bên trong đầy, điều này làm tăng nguy cơ đổi tên cùng một tệp nhiều lần.
theo lời khuyên của dbenham trong câu trả lời của mình để thêm "văn bản" vào cuối nhiều tên tệp :
Để thực hiện điều này Đối với vòng lặp trên các thư mục (thư mục) thay vì các tệp, chỉ cần bao gồm công /D
tắc.
for /D %a in (*) do ren "%a" "00_%a"
Từ for /?
:
Biến FOR / D% IN (set) Lệnh DO [tham số lệnh]
If set contains wildcards, then specifies to match against directory names instead of file names.
ren
không hoạt động trên các thư mục. Hạn chế là "bạn không thể chỉ định một ổ đĩa hoặc đường dẫn khác cho Target.
Ren
.
for /d
cũng có thể có vấn đề cố gắng xử lý các giá trị nhiều lần (cũng xem câu trả lời của tôi).