Bat dosyası ile bir çok dosyanın adını değiştirme

Kodla Büyü

kalelibilişim

Süper Üye
Süper Üye
Mesajlar
1,768
Benim bir sorunum var : Bir klasörün içinde aşağıdaki şeklinde dosyalarım var.
001_...mp3
002_...mp3
...
150_...mp3

Ben bu dosyaların isimlerini aşağıdaki gibi yaptırmak istiyorum.

1.mp3
2.mp3
...
150.mp3

Bu işlemi normalde "ren 001* 1.mp3" komutuyla yapabiliyoruz fakat bu komutu 150 defa yazmak kullanışlı değil bu komutu kısaltarak yazabilir miyiz?
 
Komutlarla nasıl yapılır bilmem ama Excel'i komutları yazmak için kullanmak mümkün. Ekte böyle bir çalışma gönderdim. Formülleri düzenleyerek istediğiniz deseni oluşturabilir. Ardından da kopyala/yapıştır ile bat dosyasına içerisine aktarabilirsiniz.

Bat komutlarıyla yapmak için for döngüsünü incelemenizde fayda var.
 

Ekli dosyalar

Yeni bir sorum olacak. Greenshot ile ekran resmi kaydediyorum. 5 haneli sayı olarak isim veriyor dosyalara örneğin 00815.png, 00816.png... Bir sonraki kullanımda isimlendirmeye kaldığı yerden başlıyor.
İsimlendirmeyi 01.png, 02.png olarak düzenlemek istiyorum sanırım greenshot ile bunu yapamıyoruz. Bu durumda bir bat dosyası ile isim değiştirmeyi düşündüm onu da tam olarak nasıl yapacağımı bilmiyorum.

Kısaca isim değeri olarak en küçük sayıyı bulup 01.png, bir sonrakini bulup 02.png olarak isimlendirecek bir bat dosyasına ihtiyacım var.

TNCTR den Hayaletx ve Mehmet arkadaşlarımızın verdiği kodlardır.

Kod:
@echo off & setlocal EnableDelayedExpansion 

set a=1
for /f "delims=" %%i in ('dir /b *.png') do (
  ren "%%i" "!a!.png" 
  set /a a+=1
) 

Ren 1.png 01.png
Ren 2.png 02.png
Ren 3.png 03.png
Ren 4.png 04.png
Ren 5.png 05.png
Ren 6.png 06.png
Ren 7.png 07.png
Ren 8.png 08.png
Ren 9.png 09.png

Kod:
@echo off (*.jpg *.bmp *.png   üç ayrı formatıda aynı anda   sizin istediğiniz gibi sıralar.)
setlocal enabledelayedexpansion

set /a "x=1"
r
for /f "usebackq tokens=*" %%i in (`dir /b *.jpg *.bmp *.png`) do (

   set _ext=%%~xi
   set "y=0!x!"
   set "y=!y:~-2!"
  

  ren "%%i" "!y!!_ext!"
  increment counter
  set /a "x+=1"
  )
endlocal

Kod:
@echo off (İsimlerine göre klasörlere taşıma.)
for /f "delims=" %%a in ('dir /b /a-d') do (
if not "%%~fa"=="%~f0" (
md "%%~na" 2>nul
if exist "%%a" move "%%~na.*" "%%~na"
)
)
 
Geri
Üst