Giren metin, çıkan metin: binlerce batch dosyasını bozan sınır
cmd metin tabanlı bir kabuktur: dir biçimlendirilmiş sütunlar basar ve gerçekten istediğiniz her şey — bir boyut, bir tarih, bir ad — sayfaya yapıştırılmış karakterler olarak gelir; sonra onları kesmeniz gerekir. Bu ayrıştırmaya dayanan scriptler, bir yerel ayar ayı yazımını değiştirdiğinde, bir sütun genişlediğinde ya da dosya adı boşluk taşıdığında devrilir. Batch dosyalarına bakan herkes ritüeli bilir: token ve sınırlayıcılarla FOR /F, küçük bir dua ve başka dilde yanıt veren makineler için ikinci bir sürüm.
2006'da çıkıp .NET üzerine kurulan PowerShell tam da bunu bitirmek için tasarlandı. Get-ChildItem satır basmaz — döndürdüğü FileInfo nesneleri Name, Length, LastWriteTime ve Extension'ı veri olarak taşır. Komutlar arasındaki pipeline bu nesneleri bütün halinde aktarır; yani Ankara'da yazılan bir filtre Münih'te birebir aynı çalışır ve toplam, güvenmeniz gereken bir dizgi değil, yuvarlayıp biçimlendirebileceğiniz bir sayıdır.
Temizlik araçlarının olması gerektiği gibi birleşen fiil-isim cmdlet'leri
Buradaki komutlar Fiil-İsim adlı cmdlet'lerdir — Get-ChildItem, Where-Object, Measure-Object, Remove-Item — ve bu disiplin kozmetik değildir: onaylı fiiller, altı ay sonra bile pipeline'ı okunabilir tutar; etiketli bir alet çantası gizemli vidalarla dolu bir çekmeceden ne kadar iyiyse bu da odur. Temizlikte tek bir komuttan çok birleşme önemlidir: bul, süz, ölç, sil — dört paragraf batch sözdizimi yerine tek satırlık nesne akışı. Her aşama adını da kendisi söyler; aceleyle yazılan bir tek satırlık komut bile bir ay sonra cümle gibi okunur.
Daha sessiz kazanç ise güvenlik. Remove-Item, yapacağı her silmeyi listeleyip hiçbirini yapmayan -WhatIf'i ve dosya dosya soran -Confirm'i kabul eder — cmd'nin hiç sahip olmadığı kuru çalıştırma. Get-AppxPackage doğrudan Remove-AppxPackage'a akar; dolanterilerin kaldırılması kayıt avı değil bir pipeline olur. Bu, silmeyi zararsız yapmaz ama denetlenebilir kılar — temizlik scriptlerinin hep eksik olduğu özellik tam olarak budur.
- Get-ChildItem $env:TEMP -Recurse — dosya başına bir FileInfo nesnesi; Length ve LastWriteTime veri olarak
- Where-Object Length -gt 100MB — nesneler üzerinde filtre; yerel aya ve sütun genişliğine bağışık
- Measure-Object Length -Sum — gigabyte toplamı sayı olarak, yeniden ayrıştırılacak dizgi değil
- Remove-Item ... -WhatIf — yapacağı her silmeyi listeleyen kuru çalıştırma
- Get-AppxPackage *zune* | Remove-AppxPackage — appx kaldırma tek pipeline'da
cmd'nin hâlâ kazandığı yerler ve dürüst sınırlar
PowerShell bedelsiz değildir. cmd'den yavaş açılır; yürütme ilkesi, Set-ExecutionPolicy -Scope CurrentUser RemoteSigned yapmadan indirilen bir .ps1'i çalıştıran yeni başlayanları durdurur; tüm diske yayılan özyinelemeli bir Get-ChildItem, işine özel yazılmış tarayıcıların yanında sürünür. Klasikler için — ipconfig, sfc, powercfg — cmd daha hafif pencere olmaya devam eder ve bu yazıdaki hiçbir şey o yirmi komutu emekliye ayırmaz.
Öteki dürüst sınır eşzamanlılıktır: silme tek iş parçacığında yürür; küçük dosyalardan devasa bir ağaç ne kadar sürerse o kadar sürer. Yine de denge net. Silmeden önce ölçen, süzen ya da raporlayan her şey için PowerShell sisteminizi kazınacak bir ekran değil veri olarak ele alır — ve izleme yazımızdaki tek satırlık komutlar kopyala-yapıştır dışında hiçbir şey istemez.
Sorular ve yanıtlar
Windows temizliği için PowerShell, cmd'den daha mı iyi?
Süzen, ölçen ya da silmeleri kuru çalıştıran her şey için evet: nesne pipeline'ları her yerel aya dayanıklıdır ve hareket etmeden önce rapor verir. Ağ ve onarım klasikleri için — ipconfig, sfc, chkdsk — cmd daha hafif pencere olmayı sürdürür.
Windows PowerShell ile PowerShell 7 arasındaki fark ne?
Windows PowerShell 5.1 işletim sisteminin içinde .NET Framework üzerine gelir; PowerShell 7 ayrıca kurulan platformlar arası haleftir. Temizlik tek satırlıkları ikisinde de değişmeden çalışır.
Satın almadan önce lisans kapsamını öğrenin.
Tek seferlik 30 dakikalık deneme temel araçları kapsar. PRO özellikleri ücretli lisans etkinleştirilene kadar kilitlidir.
Bunları da okuyun
Bize yazın: [email protected]