Toplu iş dosyasını kullanarak dosya adının sonuna (ancak uzantıdan önce) metin ekleyin


18

Soldaki biçimdeki dosyaların bir listesi var. Her dosya adına bir dize eklemek istiyorum, ancak uzantıdan önce gösterildiği gibi:

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
...

Her durumda, eklenen dize tüm dosyalar için aynıdır.

Bu çok basit bir görev gibi görünüyor, ama bunu bir toplu iş dosyasına koymakta sorun yaşıyorum.

renKomutu denedim ve bu sayfadaki bazı örnekleri takip ettim , ancak ortaya çıkan dosya adları uzantıdan sonra dizeyi ekliyor:

File 1.txt version 1.txt

SS64 "bu sayfa" bağlantınızdaki bilgiler bu SU S ve C'den (nimetimle) gelir: Windows RENAME komutu joker karakterleri nasıl yorumlar? Yeni özellikleri keşfettiğimde SU yanıtını (seyrek olarak) koruyorum.
dbenham

Yanıtlar:


6

daha uzun dosya adları ?için kütleye biraz daha eklemeniz gerekecek .?????????

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

2
Hemen cevap verdiğiniz için teşekkürler! Dosya uzantısını korumak ve yalnızca txt dosyalarını etkilemek için komutu hafifçe düzenledim: ren * .txt ????????????????????????? "Sürüm 1.txt "
TheTurkey

başlangıçta bir şeyler eklemek istersem
Farhana Haque

kaç ? karakter gerekli mi?
Kaveesh Kanwal

39

Ren'in belgesiz olmayan tuhaflıklarına güvenmek yerine, bunu neden doğru şekilde yapmıyorsunuz?

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

Bunu bir toplu iş dosyasında kullanmak istiyorsanız, her bir% işaretini ikiye katlamayı unutmayın.


1
Mükemmel! bu her gün daha iyi bir cevaptır. +1
Fr0zenFyr

Kendi sürümümüzü yapabilmemiz için "% ~ a" ve diğerleri hakkında daha fazla dokümantasyonunuz var mı?
Jomme

2

Birden çok dosyaya "_A" eklemek istedim ve bu şekilde yaptım.

Önce uzantıyı kaldırdım, soneki ekledim, sonra uzantıyı orijinaline geri değiştirdim. Benim için işe yaradı ve toplu iş kodunu basit tuttum, çünkü bir programcı değilim.

@ECHO OFF

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

2

(Benim gibi) komutla deneyimsiz olan insanlar için, toplu yeniden adlandırmayı çok kolaylaştıran birkaç yazılım var:

  • Toplu yeniden adlandırma yardımcı programı (açık kaynak yok)
  • Rename-It! (açık kaynak)

1

@ bwDraco'nun çözümü iyiydi ama daha basit tutulabilirdi. Dosyalarımın tamamı * .jpg idi ve hepsini * c.jpg olarak yeniden adlandırmak istedim. Bunun için sadece 2 adım gerekir, 3 değil:

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

0

Alt klasörler aracılığıyla yinelemeli

#!/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
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.