Windows toplu CLI yoluyla orta dosya adını yeniden adlandırmak?


13

Orijinal Dosyalar

File 15 - Example.txt
File 2 - Example.txt
File 22 - Example.txt
File 3 - Example.txt
File 4 - Example.txt
File 5 - Example.txt

Istenilen çıktı

File 15 - Example.txt
File 02 - Example.txt
File 22 - Example.txt
File 03 - Example.txt
File 04 - Example.txt
File 05 - Example.txt

Tek bir dosya ile kolayca yeniden adlandırılabilir ren.

ren "File 2 - Example.txt" "File 02 - Example.txt"

Windows renveya renamearaçla toplu olarak yeniden adlandırmak mümkün müdür ?


1
Bu tür bir görevi kolaylaştırmak için güzel ücretsiz bir yardımcı program .... bulkrenameutility.co.uk/Main_Intro.php
Moab

Katılıyorum. Bunun için GUI tabanlı birçok çözüm söyleyebilirim ve neden
CLI'deki ısrarın olduğunu

@Mawg, bu GUI araçlarıyla komut dosyası oluşturabilir misiniz?
Sabrina

Ben - AutoIt kullanarak - ama muhtemelen buna karşı tavsiye ederim :-) Ben sadece CLI için zor bir gereksinimi olup olmadığını merak ettim ve şimdi var gibi görünüyor.
Açıkladığın

Yanıtlar:


13

Windows ren veya yeniden adlandırma aracıyla toplu olarak yeniden adlandırmak mümkün müdür?

Evet, ancak bir toplu iş dosyası gerektirir.

test.cmd:

@echo off
setlocal EnableDelayedExpansion
for /f "tokens=1,2,3,4" %%i in ('dir /b *Example.txt') do (
  rem pad 2nd token with leading zero
  set _num=0%%j
  set _num=!_num:~-2!
  ren "%%i %%j %%k %%l" "%%i !_num! %%k %%l"
  )
endlocal

misal:

> dir *Example.txt
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 2 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
03/01/2019  11:30                 0 File 3 - Example.txt
03/01/2019  11:30                 0 File 4 - Example.txt
03/01/2019  11:30                 0 File 5 - Example.txt
               6 File(s)              0 bytes
               0 Dir(s)  1,075,134,230,528 bytes free

> ..\test

> dir
 Volume in drive F is Expansion
 Volume Serial Number is 3656-BB63

 Directory of F:\test\test

03/01/2019  11:54    <DIR>          .
03/01/2019  11:54    <DIR>          ..
03/01/2019  11:30                 0 File 02 - Example.txt
03/01/2019  11:30                 0 File 03 - Example.txt
03/01/2019  11:30                 0 File 04 - Example.txt
03/01/2019  11:30                 0 File 05 - Example.txt
03/01/2019  11:30                 0 File 15 - Example.txt
03/01/2019  11:30                 0 File 22 - Example.txt
               6 File(s)              0 bytes
               2 Dir(s)  1,075,134,230,528 bytes free

Daha fazla okuma


17

Bu PowerShell bir astar, dosya adındaki tüm sayıları iki yere genişletir .PadLeft(2,'0'):
(ve daha fazla yeri olmayan sayıları dokunmadan bırakın)

Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}

bir cmd satırına / toplu iş dosyasına sarılmış konu üzerinde olmak için:

Powershell -Nop -C "Get-ChildItem *[0-9]*.txt|Rename-Item -NewName {([regex]::Replace($_.BaseName,'\d+',{$args[0].Value.PadLeft(2,'0')}))+$_.Extension}"

Komutları uygulamadan önce güvenli tarafta olmak için,

  • -Confirm yeniden adlandırma yapmadan önce soran
  • -WhatIfhangi listeleri tüm adlandırmalar o olur parametre olmadan yürütmek

sonuncunun hemen önünde "


3

Düzenleme: Ben sadece bu sorunun özellikle komut satırından yeniden adlandırma ile ilgili olduğunu fark ettim, bu yüzden doğrudan soruya cevap vermiyor ... Şimdilik, diğerleri için yararlı olacağını umarak tutacağım.


Toplam Komutanı dosya yöneticisi mükemmel bir toplu yeniden adlandırma aracı bulunmaktadır. Yeniden adlandırma önizlemesi, farklı yeniden adlandırma maskeleri, normal ifadeler, tüm klasör hiyerarşisinde dosyaları yeniden adlandırma ve daha pek çok özellik içerir. Aynı zamanda, kullanımı oldukça kolaydır.

İşte kullanımını göstermek için bir ekran görüntüsü:

Total Commander Çoklu Yeniden Adlandırma Örneği

Adım adım:

  1. Total Commander'ı indirin ve çalıştırın.
  2. Yeniden adlandırılacak dosyaları içeren klasöre geçin.
  3. Yeniden adlandırılacak dosyaları işaretleyin:
    • Klasördeki tüm dosyaları işaretlemek için Seçenek 1 - Ctrl+ A.
    • Seçenek 2 - Dosyaları Spacesağ tuşla veya fare ile tek tek işaretleyin.
    • Seçenek 3 - "Dosyaları Bul" ( Alt+ F7) seçeneğini açın *.txt, "Ara" kutusuna yazın, "Aramaya Başla" yı tıklayın, "Liste kutusuna besle" ye basın ve dosyaları Ctrl+ ile işaretleyin A. İç klasörlerdeki dosyaları da yeniden adlandırmak istiyorsanız bu tekniği kullanın.
  4. Çoklu Yeniden Adlandırma aracını açmak için Ctrl+ tuşuna basın M.
  5. "Ara" ve "Şununla değiştir" kutularında istediğiniz değerleri ayarlayın. Normal bir ifade kullanıyorsanız, RegEx kutusunu işaretleyin.
  6. "Başlat!"

-2

ren *.bat *.txtisminin diğer kısmını tutan tüm eşleşen dosyalardaki uzantıları yeniden adlandırmaya çalışır. Bir dizi renkomut çalıştırmak için bunu kötüye kullanamaz mısınız?

  • ren "File *" "File 0*"
  • ren "File 00*" "File 0*"
  • (sarkan kalanlarla başa çıkmak gibi File 022 - Example.txt

1
Bu yararlı DEĞİLDİR , komutunuzun ne yapacağını kontrol ettiniz mi? 2-> 0, 22-> 02, 15-> 05.
LotPings

Hayır, Windows işletim sistemim yok, bu yüzden denemedim. Ama yıllardır REN'in bunu yapabileceğini hatırladım. Zaten bir öneri vermek istedim.
Douglas
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.