PowerShell: Erişilemeyen Dosyalar Nasıl Atlanır
Bazen PowerShell'de belirli bir dosyaya şu anda başka bir işlem tarafından kullanıldığı için erişilemediğini bildiren bir hata mesajı alabilirsiniz.
Bu hatayı bastırmanın en kolay yolu, PowerShell'e bir hata görüntülemeden göreve sessizce devam etmesini söyleyen -ErrorAction SilentlyContinue'yu kullanmaktır.
Bu sözdizimini pratikte kullanmanın yaygın bir yolu şöyledir:
Remove-Item "C:\my\path\*" -Recurse -Force -ErrorAction SilentlyContinue
Bu özel örnek, belirttiğimiz yoldaki tüm dosyaları siler. Şu anda herhangi bir dosya kullanılıyorsa PowerShell herhangi bir hata mesajı görüntülemeden bu dosyaları atlayacaktır.
Aşağıdaki örnek, bu sözdiziminin pratikte nasıl kullanılacağını gösterir.
Örnek: PowerShell'de Erişilemeyen Dosyalar Nasıl Atlanır
Geçerli dizinimizin aşağıdaki yola sahip olduğunu varsayalım:
C:\Users\bobbi\data1Bu dizindeki tüm dosya ve klasörleri görüntülemek için Get-ChildItem cmdlet'ini kullanabiliriz:
Bu dizinde üç dosya olduğunu görebiliriz:
- bölgeler.txt
- roster.csv
- schedules.csv
Bu dizindeki tüm dosyaları silmek istediğimizi, ancak schedules.csv dosyasının şu anda açık olduğunu ve bilgisayarımızda kullanıldığını varsayalım.
Dizindeki dosyaların her birini silmek için Remove-Item cmdlet'ini aşağıdaki sözdizimiyle kullanmaya çalıştığımızı varsayalım:
Remove-Item "C:\Users\bobbi\data1\*" -Recurse -ForceAşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Başka bir işlem tarafından kullanıldığından schedules.csv dosyasına erişilemediğini bildiren bir hata mesajı alıyoruz.
Geçerli dizindeki tüm dosyaları silerken bu dosyayı atlamak için -ErrorAction SilentlyContinue komutunu şu şekilde ekleyebiliriz:
Remove-Item "C:\Users\bobbi\data1\*" -Recurse -Force -ErrorAction SilentlyContinue
Aşağıdaki ekran görüntüsü bu sözdiziminin pratikte nasıl kullanılacağını göstermektedir:
Get-ChildItem cmdlet'ini tekrar çalıştırdığımızda schedules.csv dışındaki tüm dosyaların silindiğini görebildiğimize ve bu sefer herhangi bir hata mesajı almadığımıza dikkat edin.
Not: PowerShell'de -ErrorAction ile ilgili tüm belgeleri burada bulabilirsiniz.


