Cách đổi tên nhiều tệp trong nhiều thư mục bằng một lệnh


11

Chúng tôi muốn đổi tên các *.htmltệp của mình thành *.phpnhưng (đáng buồn thay) không đủ kiến ​​thức để thực hiện với lệnh nhắc cmd và / hoặc tệp bó.

Vấn đề là mỗi tệp nằm trong một thư mục riêng - và tôi đang nói về hơn 750 tên thư mục khác nhau. Sử dụng ký tự đại diện cho các tệp tôi biết là * nhưng tôi cũng không biết sử dụng ký tự đại diện cho các thư mục. Có lẽ chúng ta cần sử dụng FORlệnh (trong Command Prompt), nhưng ở đó tôi bị kẹt.

Cấu trúc thư mục chúng tôi sử dụng là:

thư mục mẹ / thư mục con / thư mục cháu / tập tin .html

ví dụ:

  • games/A/game_name/file.html
  • games/B/game_name/file.html
  • games/C/game_name/file.html và như thế.

Thư mục cha là giống nhau cho tất cả các tệp; hầu hết các tập tin con & cháu đều khác nhau đối với hầu hết các tập tin.

Sau khi đổi tên các tệp này thành *.phptôi giả sử sau đây .htaccesssẽ thực hiện chuyển hướng vĩnh viễn.

RedirectMatch 301 (.*)\.html$ http://oursite.com$1.php

Câu trả lời:


14

get-childItem -recurse | Where {$_.extension -eq ".html"} | rename-item -newname { $_.name -replace ".html",".php" }

Điều này sẽ hoạt động trong PowerShell. Nếu bạn có Windows 7 hoặc Vista, bạn nên cài đặt nó theo mặc định. Nếu bạn đang dùng XP, bạn có thể tải xuống tại đây .


Soandos, Chapeau !!!!!!!!!!!! Nhiều thanx từ phía này, hoạt động như một nét duyên dáng.
Charles

@Charles, nếu điều này giải quyết vấn đề của bạn, vui lòng nhấp vào dấu kiểm, để mọi người khác thấy nó sẽ biết nó hoạt động. Chào mừng bạn đến với SuperUser.
soandos

3

Trong dòng lệnh:

for /f "delims=*" %a in ('dir *.html /b /s') do ren "%a" *.php

Lưu ý: Bạn có thể thay thế *.htmlcho ký tự đại diện khác, ví dụ d:\www\*.html.

Lưu ý 2: Nếu sử dụng lệnh trong tệp bó, hãy thay thế %abằng %%a(đừng hỏi tôi tại sao)


Tại sao bạn nói "delims=*"?  "delims="nên đủ tốt (nghĩa là tại sao bạn chỉ định một dấu phân cách của *?
G-Man nói 'Phục hồi Monica'

1

Linh hoạt Renamer là một chương trình nhỏ tuyệt vời sẽ xử lý một số loại đổi tên tìm kiếm / thay thế khác nhau. Nó chấp nhận các biểu thức chính quy và có các mẫu chung được xác định trước. Ngoài ra, nó cho phép bạn bao gồm các mục trong các thư mục con hoặc tự vận hành trên các thư mục. Nó cũng cung cấp cho bạn bản xem trước của tất cả các thay đổi sẽ được thực hiện. Tôi đã sử dụng nó trong nhiều năm, và rất khuyến khích nó.

http://doad.cnet.com/Flexible-Renamer/3000-2248_4-28799.html



Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.