Làm cách nào tôi có thể sử dụng dòng lệnh Windows để thay đổi phần mở rộng của hàng ngàn tệp thành *****.jpg
?
Làm cách nào tôi có thể sử dụng dòng lệnh Windows để thay đổi phần mở rộng của hàng ngàn tệp thành *****.jpg
?
Câu trả lời:
Bạn có thể sử dụng ren
(như đổi tên ):
ren *.XXX *.YYY
Và tất nhiên, chuyển đổi XXX và YYY cho các tiện ích mở rộng phù hợp. Nó sẽ thay đổi từ XXX thành YYY. Nếu bạn muốn thay đổi tất cả các tiện ích mở rộng, chỉ cần sử dụng lại ký tự đại diện:
ren *.* *.YYY
Một cách để thực hiện công việc này một cách đệ quy là với FOR
lệnh. Nó có thể được sử dụng với /R
tùy chọn để áp dụng đệ quy một lệnh cho các tệp phù hợp. Ví dụ:
for /R %x in (*.txt) do ren "%x" *.renamed
sẽ thay đổi tất cả các .txt
phần mở rộng thành .renamed
đệ quy, bắt đầu trong thư mục hiện tại.
%x
là biến chứa tên tệp phù hợp.
Và, vì bạn có hàng ngàn tệp, hãy đảm bảo đợi cho đến khi con trỏ bắt đầu nhấp nháy lần nữa cho biết nó đã hoạt động.
Lưu ý: điều này chỉ hoạt động trên cmd. Không làm việc trên Powershell hoặc Bash
ren *.* *.jpg > E:\Log\Cmd\ExtChange\ext.txt
?
FOR
Đổi tên hành vi đôi khi "ít hơn trực quan"; ví dụ...
ren * .THM * .jpg sẽ đổi tên các tệp THM của bạn để có phần mở rộng là .jpg. ví dụ: GEDC003.THM sẽ là GEDC003.jpg
ren * .THM * b.jpg sẽ đổi tên các tệp THM của bạn thành * .THMb.jpg. ví dụ: GEDC004.THM sẽ trở thành GEDC004.THMb.jpg
ren * .THM * .b.jpg sẽ đổi tên các tệp THM của bạn thành * .b.jpg ví dụ: GEDC005.THM sẽ trở thành GEDC005.b.jpg
LƯU Ý: không dành cho Windows
Sử dụng ren-1.0, hình thức đúng là:
"ren *.*" "#2.jpg"
Từ man ren
Mẫu thay thế là một tên tệp khác có các chỉ mục ký tự đại diện được nhúng, mỗi ký tự bao gồm ký tự # theo sau là một chữ số từ 1 đến 9. Trong tên mới của tệp phù hợp, các chỉ mục ký tự đại diện được thay thế bằng các ký tự thực phù hợp với tham chiếu ký tự đại diện trong tên tệp gốc.
và
Lưu ý rằng shell thường mở rộng các ký tự đại diện * và ?, Trong trường hợp ren là không mong muốn. Vì vậy, trong hầu hết các trường hợp, cần phải đặt mẫu tìm kiếm trong dấu ngoặc kép.
man ren
? Câu hỏi là về Windows / cmd
. Bây giờ những người cung cấp man
các trang? Là gì ren-1.0
và làm thế nào chúng ta có thể xem nó man
trang trong bối cảnh?
thật đơn giản
ren *.* *.jpg
thử điều này trong dấu nhắc lệnh
Chỉ dành cho những người tìm kiếm để làm điều này trong các tệp bó, mã này đang hoạt động:
FOR /R "C:\Users\jonathan\Desktop\test" %%f IN (*.jpg) DO REN "%%f" *.png
Trong ví dụ này, tất cả các tệp có phần mở rộng .jpg trong thư mục C: \ Users \ jonathan \ Desktop \ test được đổi thành * .png.
Đổi tên nhiều phần mở rộng tập tin:
Bạn muốn thay đổi ringtone1.mp3
, ringtone2.mp3
để ringtone1.wav
,ringtone2.wav
Đây là cách để làm điều đó: Tôi đang ở trong ổ d trên dấu nhắc lệnh (CMD) vì vậy tôi sử dụng:
d:\>ren *.* *.wav
Đây chỉ là một ví dụ về tiện ích mở rộng tệp, bạn có thể sử dụng bất kỳ loại tiện ích mở rộng tệp nào như WAV, MP3, JPG, GIF, bmp, PDF, DOC, DOCX, TXT tùy thuộc vào hệ điều hành của bạn.
Và, vì bạn có hàng ngàn tệp, hãy đảm bảo đợi cho đến khi con trỏ bắt đầu nhấp nháy lần nữa cho biết nó đã hoạt động.
Trong trường hợp của tôi, tôi đã có một thư mục với hơn 800 tệp kết thúc bằng .StoredProcedure.sql
(chúng được viết theo kịch bản với SSMS ).
Các giải pháp được đăng ở trên không hoạt động. Nhưng tôi đã nghĩ ra điều này:
(Dựa trên câu trả lời để lập trình hàng loạt - nhận đường dẫn tương đối của tệp )
@echo off
setlocal enabledelayedexpansion
for %%f in (*) do (
set B=%%f
set B=!B:%CD%\=!
ren "!B!" "!B:.StoredProcedure=!"
)
Kịch bản trên loại bỏ chuỗi con .StoredProcedure
khỏi tên tệp. Tôi chắc chắn rằng nó có thể được điều chỉnh để bao gồm nhiều trường hợp hơn, yêu cầu đầu vào và nói chung chung hơn.
set
lệnh của bạn bằng lệnh đơn này : set "B=%%~nxf"
. ( %%~nxf
là n ame và e x căng thẳng của %%f
). %cd%
có thể không hợp lệ, khi bạn thực hiện đệ quy.
Tôi biết điều này đã quá cũ, nhưng tôi đã tìm đến nó và các câu trả lời được cung cấp không phù hợp với tôi trên powershell nên sau khi tìm kiếm đã tìm thấy giải pháp này
để làm điều đó trong powershell
Get-ChildItem -Path C:\Demo -Filter *.txt | Rename-Item -NewName {[System.IO.Path]::ChangeExtension($_.Name, ".old")}
tín dụng vào http://powershell-guru.com/powershell-tip-108-bulk-rename-extensions-of-files/