Thêm văn bản vào cuối tên tệp (nhưng trước phần mở rộng) bằng tệp bó


17

Tôi có một danh sách các tập tin ở định dạng bên trái. Tôi muốn nối một chuỗi vào mỗi tên tệp, nhưng trước phần mở rộng, như được hiển thị:

File 1.txt  ->  File 1 version 1.txt
File 2.txt  ->  File 2 version 1.txt
File 3.txt  ->  File 3 version 1.txt
File 4.txt  ->  File 4 version 1.txt
...

Trong mỗi trường hợp, chuỗi được nối là giống nhau trên tất cả các tệp.

Đây có vẻ như là một nhiệm vụ đơn giản như vậy, nhưng tôi gặp một số khó khăn khi đưa nó vào một tệp bó.

Tôi đã thử renlệnh và làm theo một số ví dụ trên trang này , nhưng tên tệp kết quả sẽ nối chuỗi sau phần mở rộng:

File 1.txt version 1.txt

Thông tin trong liên kết "trang này" SS64 của bạn xuất phát từ câu hỏi SU này (với lời chúc của tôi): Lệnh Windows RENAME diễn giải các ký tự đại diện như thế nào? Tôi duy trì câu trả lời SU (không thường xuyên) khi tôi khám phá các tính năng mới.
dbenham

Câu trả lời:


6

đối với tên tệp dài hơn, bạn sẽ phải thêm một số chi tiết ?trong khối với khối lượng?????????

ren *.?* ????????????????????????????????????????????????????????" version 1".*

2
Cảm ơn đã trả lời kịp thời! Tôi đã chỉnh sửa lệnh một chút, để giữ lại phần mở rộng tệp và chỉ ảnh hưởng đến các tệp txt: ren * .txt ????????????????????????? 1.txt "
TheTurkey

Điều gì sẽ xảy ra nếu tôi muốn nối thêm thứ gì đó vào lúc đầu
Farhana Haque

bao nhiêu ? Nhân vật có cần thiết?
Kaveesh Kanwal

38

Thay vì dựa vào ren quirks không có giấy tờ 's, tại sao không làm điều này một cách thích hợp?

for %a in (*.txt) do ren "%~a" "%~na version 1%~xa"

Nếu bạn muốn sử dụng tệp này trong một tệp bó, chỉ cần nhớ nhân đôi mỗi dấu%.


1
Xuất sắc! đây là một câu trả lời tốt hơn bất cứ ngày nào +1
Fr0zenFyr

2

Tôi muốn thêm "_A" vào nhiều tệp và đây là cách tôi đã làm.

Tôi đã loại bỏ phần mở rộng trước, thêm hậu tố, sau đó thay đổi phần mở rộng trở lại ban đầu. Nó chắc chắn đã làm việc cho tôi và giữ mã lô đơn giản, vì tôi không phải là một lập trình viên.

@ECHO OFF

REN *.pdf *.
REN *. *_A.
REN *. *.pdf

2

Đối với những người thiếu kinh nghiệm với lệnh (như tôi), có một số phần mềm giúp đổi tên hàng loạt rất dễ dàng:

  • Tiện ích đổi tên hàng loạt (không có nguồn mở)
  • Đổi tên-Nó! (mã nguồn mở)

1

Giải pháp của @ bwDraco là tốt nhưng nó có thể được giữ đơn giản hơn. Tập hợp các tệp của tôi là tất cả * .jpg và tôi muốn đổi tên tất cả * c.jpg. Bạn chỉ cần 2 bước cho việc này, không phải 3:

ren "{filepath}\*.jpg" *.
ren "{filepath}\*" *c.jpg

0

Đệ quy thông qua các thư mục con

#!/bin/bash
# Warning: globstar excludes hidden directories.
# Turn on recursive globbing (in this script) or exit if the option is not supported:
shopt -s globstar || exit
for f in **
do
if [ -f "$f" ]; then
   extn=${f##*.} # save the extension of the file
   #mv "$f" "${f%.*}"_suffix.${extn};
   mv "$f" "${f%.*} version 1".${extn};
fi
done
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.