Windows Automation

Alt Dizinlerdeki Dosyaları Toplu İşlemlerle Verimli Bir Şekilde İşleme

Spread the love

Alt Dizinlerdeki Dosyaları Etkin Bir Şekilde İşleme: Toplu İşleme Komut Dosyaları

Toplu İşleme Komut Dosyası Temellerini Anlama

Yaşına rağmen toplu işleme komut dosyaları, Windows görevlerini otomatikleştirmek için değerli bir araç olmaya devam etmektedir. Toplu işleme komut dosyaları, cmd.exe tarafından sırayla yürütülen komutlar içeren basit metin dosyalarıdır ve dosya manipülasyonu ve sistem yönetimi için basit bir yaklaşım sunar. Genellikle .bat veya .cmd uzantısına sahiptirler.

Temel unsurlar şunlardır:

  • Değişkenler: set komutu kullanılarak verileri (örneğin, dosya yolları) saklar (örneğin, set myVar=değer).
  • Komutlar: dir, copy, del, mkdir ve if gibi komutlar.
  • Kontrol Yapıları: if, for ve goto ile koşullu yürütmeyi ve döngüleri sağlar.

Alt Dizinlerdeki Dosyaları Özyinelemeli Olarak İşleme

for /r döngüsü, özyinelemeli dizin geçişi için çok önemlidir. /r anahtarı, döngünün alt dizinleri aramasını söyler. Bu örnek, belirtilen bir dizin ve alt klasörleri içindeki tüm .txt dosyalarını listeler:


@echo off
setlocal

set "rootDir=C:MyDirectory"  'Kök dizininizi buraya girin

for /r "%rootDir%" %%a in (*.txt) do (
  echo Dosya işleniyor: %%a
)

endlocal

Açıklanan temel unsurlar:

  • @echo off: Komut görüntülemeyi bastırır.
  • setlocal: Komut dosyası değişkenlerini ayırmak için yerel bir ortam oluşturur.
  • for /r "%rootDir%" %%a in (*.txt) do (...): Özyinelemeli döngü. %%a tam dosya yolunu tutar.
  • endlocal: Yerel ortamı sonlandırır.

Özel Dosya İşlemleri Ekleme

Dosyaları listelemenin ötesinde, döngüye çeşitli komutlar entegre edebilirsiniz. Bu örnek, tüm .txt dosyalarını bir yedekleme dizinine kopyalar:


@echo off
setlocal

set "rootDir=C:MyDirectory"
set "backupDir=C:Backup"

if not exist "%backupDir%" mkdir "%backupDir%"

for /r "%rootDir%" %%a in (*.txt) do (
  copy "%%a" "%backupDir%" & if errorlevel 1 echo %%a dosyasının kopyalanmasında hata oluştu
)

endlocal

Sağlam Hata İşleme Teknikleri

Etkin hata işleme hayati önem taşır. Bu gelişmiş komut dosyası, yedekleme dizinini kontrol eder ve olası kopyalama hatalarını ele alır:


@echo off
setlocal

set "rootDir=C:MyDirectory"
set "backupDir=C:Backup"

if not exist "%backupDir%" (
  mkdir "%backupDir%"
  if errorlevel 1 (
    echo Yedekleme dizini oluşturulurken hata oluştu! Çıkılıyor.
    exit /b 1
  )
)

for /r "%rootDir%" %%a in (*.txt) do (
  copy "%%a" "%backupDir%"
  if errorlevel 1 (
    echo %%a dosyasının kopyalanmasında hata oluştu. Devam ediliyor...
  )
)

endlocal

Gelişmiş Teknikler ve Optimizasyonlar

Daha karmaşık senaryolar veya büyük dizinler için şu optimizasyonları göz önünde bulundurun:

  • forfiles: Gelişmiş filtreleme sağlar (örneğin, tarihe, boyuta göre).
  • PowerShell: Kapsamlı dosya işlemleri için daha güçlü ve verimli araçlar sağlar.
  • Paralel İşleme: Birden fazla dosyayı eş zamanlı olarak işlemek için teknikleri araştırın (daha gelişmiş komut dosyası gerektirir).

Sıkça Sorulan Sorular

  • S: Dosya yollarındaki boşlukların işlenmesi: Yolları her zaman çift tırnak içine alın (").
  • S: Belirli bir tarihten sonra değiştirilen dosyaların işlenmesi: /d anahtarıyla forfiles kullanın.
  • S: Diğer joker karakterlerin kullanılması: Evet, ? (tek karakter) ve * (sıfır veya daha fazla karakter) kullanın.
  • S: Performansın iyileştirilmesi: Çok büyük dizinler için PowerShell önemli ölçüde daha iyi performans sunar.

Bir yanıt yazın

E-posta adresiniz yayınlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir