Bat İle Dosya Uzantısı Değiştirmek?
-
Merhabalar,
Arkadaşlar kullandığımız bir program var güncelleme yapmak istediğimizde DLL uzantılı dosyaların uzantısını değiştirip yeni DLL uzantılı dosyaları yüklüyoruz.
Her seferinde bunu yapmak yerine bat dosyası ile tek tıkla yapılabilirmi.
Örnek dosya yolu; E:\Programlar\CMD Software\ICAZ\arge.dll
Bat dosyasını çalıştırdığımda, E:\Programlar\CMD Software\ICAZ\arge.11.12.2024 olarak yani işlem yaptığım tarihi dll yerine yazacak.
bu dll dosyasından 11 adet var farklı isimlerde.
Bu konuda destek olursanız sevinirim.
-
Evet, bu işlemi bir bat (Batch) dosyası ile otomatikleştirebilirsiniz. Aşağıda istediğiniz gibi bir bat dosyasının nasıl hazırlanacağına dair örnek kod bulunuyor. Bu kod, mevcut DLL dosyasını yedekler ve dosya adına işlem tarihini ekler.
Adımlar:
1.Not Defteri’ni açın.
2.Aşağıdaki kodu kopyalayıp yapıştırın.
3.Dosyayı yedekle.bat gibi bir isimle kaydedin (dosya türü olarak “Tüm Dosyalar” seçmeyi unutmayın).
Kod:
@echo off
setlocal enabledelayedexpansion
:: Tarihi al ve uygun formatta düzenle
for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value | findstr LocalDateTime"') do set datetime=%%i
set year=%datetime:~0,4%
set month=%datetime:~4,2%
set day=%datetime:~6,2%
set formattedDate=%day%.%month%.%year%
:: DLL dosyalarının bulunduğu klasör
set sourceFolder=E:\Programlar\CMD Software\ICAZ
:: Klasördeki tüm DLL dosyalarını işle
for %%f in ("%sourceFolder%\*.dll") do (
set filePath=%%f
set fileName=%%~nf
set newFileName=%fileName%.%formattedDate%
echo İşleniyor: !filePath!
rename "!filePath!" "!newFileName!"
)
echo İşlem tamamlandı.
pause
Kodun Çalışma Mantığı:
1.Tarih Formatı: wmic komutu ile güncel tarihi alır ve “GG.AA.YYYY” formatına çevirir.
2.Klasördeki DLL Dosyaları: *.dll filtresiyle belirtilen klasördeki tüm DLL dosyalarını bulur.
3.Dosya Yeniden Adlandırma: Her bir dosyanın adını orijinal_adı.tarih formatında değiştirir.
Örnek Çıktı:
•arge.dll → arge.11.12.2024
•test.dll → test.11.12.2024
Eğer başka bir isteğiniz veya düzenleme ihtiyacınız olursa, lütfen belirtin!
KaptaN tarafından 11/Ara/24 11:42 tarihinde düzenlenmiştir -
KaptaN bunu yazdı
Evet, bu işlemi bir bat (Batch) dosyası ile otomatikleştirebilirsiniz. Aşağıda istediğiniz gibi bir bat dosyasının nasıl hazırlanacağına dair örnek kod bulunuyor. Bu kod, mevcut DLL dosyasını yedekler ve dosya adına işlem tarihini ekler.
Adımlar:
1.Not Defteri’ni açın.
2.Aşağıdaki kodu kopyalayıp yapıştırın.
3.Dosyayı yedekle.bat gibi bir isimle kaydedin (dosya türü olarak “Tüm Dosyalar” seçmeyi unutmayın).
Kod:
@echo off
setlocal enabledelayedexpansion
:: Tarihi al ve uygun formatta düzenle
for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value | findstr LocalDateTime"') do set datetime=%%i
set year=%datetime:~0,4%
set month=%datetime:~4,2%
set day=%datetime:~6,2%
set formattedDate=%day%.%month%.%year%
:: DLL dosyalarının bulunduğu klasör
set sourceFolder=E:\Programlar\CMD Software\ICAZ
:: Klasördeki tüm DLL dosyalarını işle
for %%f in ("%sourceFolder%\*.dll") do (
set filePath=%%f
set fileName=%%~nf
set newFileName=%fileName%.%formattedDate%
echo İşleniyor: !filePath!
rename "!filePath!" "!newFileName!"
)
echo İşlem tamamlandı.
pause
Kodun Çalışma Mantığı:
1.Tarih Formatı: wmic komutu ile güncel tarihi alır ve “GG.AA.YYYY” formatına çevirir.
2.Klasördeki DLL Dosyaları: *.dll filtresiyle belirtilen klasördeki tüm DLL dosyalarını bulur.
3.Dosya Yeniden Adlandırma: Her bir dosyanın adını orijinal_adı.tarih formatında değiştirir.
Örnek Çıktı:
•arge.dll → arge.11.12.2024
•test.dll → test.11.12.2024
Eğer başka bir isteğiniz veya düzenleme ihtiyacınız olursa, lütfen belirtin!
Brom teşekkür ederim
Belirttiğim dosyaların dll uzantısını değiştirmek istesem ?
60 tane dll var bunun içinde 11 tanesi değişecek.
örnek:
arge.dll
argesok.dllargepat.dll vs vs .
-
xxx.dll ve yyy.dll yazan satıra istediğin dll isimlerini ekleyebilirsin
@echo off setlocal enabledelayedexpansion :: Tarihi al ve uygun formatta düzenle for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value | findstr LocalDateTime"') do set datetime=%%i set year=%datetime:~0,4% set month=%datetime:~4,2% set day=%datetime:~6,2% set formattedDate=%day%.%month%.%year% :: DLL dosyalarının bulunduğu klasör set sourceFolder=E:\Programlar\CMD Software\ICAZ :: İşlenecek dosyalar (virgülle ayırarak listeleyin) set processFiles=xxx.dll,yyy.dll :: Listeyi döngüyle işle for %%f in (%processFiles%) do ( set filePath=%sourceFolder%\%%f if exist "!filePath!" ( set fileName=%%~nf set extension=%%~xf set newFileName=!fileName!.!formattedDate!!extension! echo İşleniyor: !filePath! rename "!filePath!" "!newFileName!" ) else ( echo Dosya bulunamadı: %%f ) ) echo İşlem tamamlandı. pause -
powershell
Get-ChildItem "*.dll" | Rename-Item -NewName { $_.Name -replace "\.dll$",".bak" }
-
JpnTr bunu yazdı
xxx.dll ve yyy.dll yazan satıra istediğin dll isimlerini ekleyebilirsin
@echo off setlocal enabledelayedexpansion :: Tarihi al ve uygun formatta düzenle for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value | findstr LocalDateTime"') do set datetime=%%i set year=%datetime:~0,4% set month=%datetime:~4,2% set day=%datetime:~6,2% set formattedDate=%day%.%month%.%year% :: DLL dosyalarının bulunduğu klasör set sourceFolder=E:\Programlar\CMD Software\ICAZ :: İşlenecek dosyalar (virgülle ayırarak listeleyin) set processFiles=xxx.dll,yyy.dll :: Listeyi döngüyle işle for %%f in (%processFiles%) do ( set filePath=%sourceFolder%\%%f if exist "!filePath!" ( set fileName=%%~nf set extension=%%~xf set newFileName=!fileName!.!formattedDate!!extension! echo İşleniyor: !filePath! rename "!filePath!" "!newFileName!" ) else ( echo Dosya bulunamadı: %%f ) ) echo İşlem tamamlandı. pausehocam kod çalıştı ellerinize sağlık.
Yalnız ufak bir problem var, xxx.dll adını xxx.11.12.2024.dll olarak değiştirdi.
Benim istediğim ise xxx.dll dosyasını xxx.11.12.2024 olarak değiştirsinteşekkürler
Edit : Chatgpt nin ellerinden öperim. sorun giderildi..
@echo off
setlocal enabledelayedexpansion
:: Tarihi al ve uygun formatta düzenle
for /f "tokens=2 delims==" %%i in ('"wmic os get localdatetime /value | findstr LocalDateTime"') do set datetime=%%iset year=%datetime:~0,4%
set month=%datetime:~4,2%
set day=%datetime:~6,2%set formattedDate=%day%.%month%.%year%
:: DLL dosyalarının bulunduğu klasör
set sourceFolder=E:\Programlar\CMD Software\ICAZ:: İşlenecek dosyalar (virgülle ayırarak listeleyin)
set processFiles=yyy.dll,zzz.dll:: Listeyi döngüyle işle
for %%f in (%processFiles%) do (
set filePath=%sourceFolder%\%%f
if exist "!filePath!" (
set fileName=%%~nf
set extension=%%~xf
set newFileName=!fileName!.!formattedDate!
echo İşleniyor: !filePath!
rename "!filePath!" "!newFileName!"
) else (
echo Dosya bulunamadı: %%f
)
)echo İşlem tamamlandı.
pause
HoLyCat tarafından 11/Ara/24 12:51 tarihinde düzenlenmiştir
