Bu İpuçları İle Patron Gibi PowerShell Hatalarını Ele Alın

  • Michael Fisher
  • 0
  • 2702
  • 708
reklâm

PowerShell'de ilk olarak komut dosyası başlatmaya başladığınızda, Windows Yönetici Becerilerinizi Geliştirecek Powershell Cmdlet'leri bir dizi komut paketlemek cazip gelebilir. Powershell, Windows Yönetici Becerilerinizi Geliştirecek Powershell Cmdlet'leri eşit parça komut satırı aracı ve komut dosyası dilidir. Bilgisayarınızı yönetmek için kullandığınızla aynı komutlarla otomatikleştirme yeteneği verir. . Ancak, komut dosyanız başarısız olursa, sorun gidermeye nereden başlayacağınızı bilemezsiniz. Komut dosyanızın neden başarısız olduğunu tahmin etmeye çalışırken zaman kaybetmekten kurtulmak için hata işlemeyi kullanmalısınız..

PowerShell hata işleme için dört bölüm vardır: Hata Eylemi parametresi, Try / Catch blokları, Hata Değişkeni parametresi ve kayıt.

PowerShell Hatası Kolay Yolu Kullanma

Hataları işlemek istediğiniz ilk kez bir şeyin komut dosyasını izlerinde durdurmasıdır. Hata sonraki adımlarınızı etkilemiyorsa, atlamak ve devam etmek en iyisi olabilir.

Öte yandan, belirli bir cmdlet'in sonlandırma hatası attığında her zaman net değildir. Bazı cmdlet'ler hata döndürür, ancak komut dosyanızı durdurmaz. Daha sonra saçma bir çıktı verirken betiğinizin tamamlanmasını bekleyebilirsiniz..

İşte burası -ErrorAction parametresi gelir. Hatayı istediğiniz şekilde işlemesi için bir cmdlet'i zorlamak için bunu kullanın. Varolan bir komut dosyasını değiştiriyorsanız, Windows PowerShell Komut Dosyaları ile Verimliliğinizi Artırın Windows PowerShell Komut Dosyaları ile Verimliliğinizi Artırın Peki ya Linux'un üretkenliğini Windows'a getirebilirseniz? Çoğu Linux dağıtımı güçlü Bash kabuğuyla paketlenmiştir. PowerShell, Windows için aynı derecede güçlü bir terminaldir. , cmdlet satırının sonuna ekleyin..

Get-ChildItem -Path "~ \ Belgeler \ *. Jpg" -Tekliyin -ErrorAction Durdur

Açıkçası, kullanıyorsanız Get-ChildItem kendi başına cmdlet, hata sizin için fazla bir şey yapmaz. Ancak, verilerle herhangi bir şey yapmak istiyorsanız, betiği durdurmak iyi olacaktır, bu nedenle aramanın başarısız olduğunu ve neden olduğunu biliyorsunuzdur. Alternatif olarak, birden fazla arama yapıyorsanız, parametreyi durdurmak için SilentlyContinue, bu nedenle bir arama başarısız olursa komut dosyası devam eder. Hatanın ne olduğunu görmek isterseniz, kullanabilirsiniz. Devam et bunun yerine parametre olarak.

Get-ChildItem -Path "~ \ Documents \ *. Jpg" -Tekliyin -ErrorAction SilentlyContinue

Komut dosyanız her çalıştığında ne olacağını kontrol etme seçeneğiniz varsa, Sormak. Cmdlet'iniz bir bağlantıya bastığında, seçenekler sunar: Evet, Evet, Herkes için, Komutu Durdur, Askıya Al veya Yardım.

Bu seçenek biraz daha esnektir, ancak hatalar, komut dosyanızın girişinizi beklemesine neden olduğu anlamına gelir. Bir gecede uzun bir işlem yaparken bu istediğin bir şey olmayabilir..

Programlama Yolunu Kullanma Hatası

ErrorAction parametresi hatalarınızı basit bir şekilde giderir. Ancak, hatalar üzerinde biraz daha fazla kontrol arıyorsanız, PowerShell sizi hala korudu. kullanma / Yakalamak deneyin, cmdlet'ler bir hata döndüğünde betiği şimdi dallandırabiliriz.

Adından da anlaşılacağı gibi, / Yakalamak deneyin iki parçadan oluşur. (Teknik olarak üçte bir var, ancak bir dakika içinde buna başlayacağız.) İlk Deneyin Bölüm. Bu bölümde normal kodunuzu çalıştıracaksınız. Hala kullanacaksın -ErrorAction parametre, ancak yalnızca olarak ayarlanabilir durdurmak. Bu bayrak cmdlet'inizin tetiklemesini sağlar. Yakalamak-sonlandırma hatası olmasa bile.

Get-Process "Cortana" -ErrorAction Stop ı deneyin

Arama işlemi başarısız olursa diğer cmdlet'lerin çalışmasını da önleyebilirsiniz. Bu durumda, gönderiyorsanız Get-Process sonuç Dur-Süreci, başarısız bir arama, ikinci cmdlet'in çalışmasını önler.

Şimdi bir try cmdlet bloğu oluşturduğunuza göre, başarısız olduğunda ne yapmak istiyorsunuz? Kullanmak Yakalamak yarısı, bunu tanımlayacaksın.

Catch Yazma Sunucusu "İşlem Bulunamadı"

Olduğu gibi ErrorAction parametre, biraz daha karmaşık bir şey yapıyorsanız 3 Windows 10'a Yükselttikten Sonra Zeki PowerShell İşlevleri 3 Akıllı Zeki PowerShell İşlevleri Windows 10'a Yükselttikten Sonra Windows 10 bize steroidler için Komut İstemi'ni yeni bir PowerShell getiriyor. Bu makale, PowerShell ile başka türlü imkansız olanı nasıl yapacağınızı gösterir. Ve düşündüğünden daha kolay! Yakalamak Basit bir dil hatası vermekten daha fazlası için faydalı olacaktır. (Yukarıdaki örnekte başarısızlık, işlem adı değil uygulama adı kullanılarak zorlanır.) Bu nedenle, Deneyin İhtiyacınız olan bir arama / eylem oluşturmak için engelleyin. Kullanabilirsiniz Yakalamak komut dosyanızın başarısız olması durumunda size e-posta göndermesini engelle.

Cmdlet'inizin başarılı olup olmamasına bakılmaksızın bir şeyin çalışmasını istiyorsanız, üçüncü bölüm kullanışlı olacaktır. Bunun için kullanabilirsiniz En sonunda blok. Bunu Deneyin ve Yakaladıktan sonra ekleyin ve komut dosyanızın bir bölümü sona erdiğinde oturum açın.

Hata Değişkeni ve Günlüğü

Komut dosyanız şimdi hataları nasıl ele aldığını ve onlara nasıl yanıt vereceğini kontrol eder. Zamanlanmış bir görev olarak kullanabilirsiniz veya en azından masanızda olmadığınız zamanlarda çalıştırın 5 Toplu Kodlama yerine PowerShell'i kullanmanız gerekenler 5 Toplu Kodlama yerine PowerShell'i kullanmanız gerekenler PowerShell, kullanmanız gerekenler Komut İstemi'ni Batch Scripting ile geçti, bazı ekstra özellikler fırlattı ve hepsini bir miktar yukarı fırlattı. İşte denemek için birkaç neden. . Ancak, başarısız bir komut dosyasını nasıl inceleyebilirsiniz? İle -ErrorVariable cmdlet'inizin hatalarını değiştirerek özel bir değişkene yazabilirsiniz. Bu sisteme bir alternatif $ Hatası Geçerli oturumdaki tüm hataları içeren değişken.

Cmdlet'inizin biraz daha uzun sürmesi gerekiyor. İlk önce, bir değişkeni tanımla $ SearchError örnek için yapacağım. Aradığın zaman SearchError içinde ErrorVariable parametre, dolar işareti kullanmazsınız. Oluşturduğunuz bir değişkeni aramanıza rağmen, parametrenin çalışma şekli nedeniyle onu dolar işareti olmadan çağırırsınız. Sonra onu satırın sonuna ekleyin..

Get-ChildItem -Path "~ \ Documents \ *. Jpg" -Recurse -ErrorAction Devam Et -ErrorVariable SearchError

Eklerseniz + Değişken adının önünde, değişkeni doğrudan değiştirmek yerine ekleyebilirsiniz. Bu size global hata değişkeni ile aynı davranışı kazandırır. Bunun yerine, bu çıkışı kullanabilirsiniz ve / Yakalamak deneyin özel çıktılar yazmak ve zaman damgası yazmak.

Bu işlemi yapmak için, hata değişkenini ayarladıktan hemen sonra bir metin dosyası oluşturun. Bunu ile yapın Yeni öğe cmdlet. Kullanmak isteyebilirsiniz Sormak seçeneği ErrorAction parametre. Bu, mevcut bir günlüğe Yeni öğe cmdlet başarısız.

$ SearchLog = Yeni Öğe "~ \ SearchLog.txt" -tipi dosyası -ErrorAction Inquire

Şimdi ne zaman yaptığını / Yakalamak deneyin blok, kullanabilirsiniz Yakalamak Bir metin dosyasına giriş yapmak için Kullan Get-Tarih zaman damgası oluşturmak için Biçimlendirme zor olabilir, bu yüzden onu örnekten kopyaladığınızdan emin olun..

Get-ChildItem -Path "~ \ Documents \ *. Jpg" -Recurse -ErrorAction Durdurmayı -ErrorVariable SearchError Yakalamayı Ekle-İçerik -Path $ SearchLog -Value "$ 'ı ($ Al hh_mm_ss) Dosya bulunamadı hatası döndürüldü: $ SearchError "

Tüm cmdletleriniz için gerektiği gibi tekrarlayın. 15 Gelişmiş Görevler Windows 10'da PowerShell İşleyebilir 15 15 Gelişmiş Görevler Windows 10'da PowerShell İşleyebilir PowerShell komut istemine benzer, ancak daha iyidir. Güçlü bir sistem yönetim aracıdır. PowerShell'in sihrinden faydalanan, bazıları basit, bazıları karmaşık 15 görevden derledik. ve şimdi hataların güzel bir günlüğüne sahipsiniz. Başarıyla çalışan şeyleri izlemek istiyorsanız, benzer bir Add-İçerik sonunda Deneyin blok. Bu günlük kaydı yalnızca Deneyin cmdlet başarılı. Ardından hatalarınızı ve başarılarınızı zaman damgalarıyla kaydedebilirsiniz. Günlüğe kaydetme, komut dosyanızın yaptığı her şeyi, başarılı ya da başarısızlığı bilmenizi sağlar.

Kodun Gücü

Komut satırında PowerShell kullanma Komut İstemi ve Windows PowerShell: Fark Nedir? Komut İstemi - Windows PowerShell: Fark Nedir? Windows kullanıcıları, Komut İstemi veya PowerShell kullanmadan yararlanabilirler. Ancak Windows 10 ve köşedeki yeni özelliklerle, belki öğrenmenin zamanı gelmiştir. sisteminizi yönetmek için güçlü bir yoldur. Aynı komutları güçlü otomasyona izin verecek şekilde sıralayabilirsiniz. Komut dosyalarınızın yalnızca istediğiniz şeyi yapmasını sağlamak için doğru hata işleme gereklidir. Her şeyi günlüğe kaydetmek, sorun giderme sırasında size zaman kazandırabilir.

Hata işlemenin domuz pastırmanızı kurtardığı bir zaman var mı? Daha iyi bir hata işleme için kullanabileceğiniz bir PowerShell betiği var mı? Bir sonraki PowerShell projeniz nedir? Yorumlarınızı bize bildirin.




Henüz no comments

Modern teknoloji hakkında basit ve uygun fiyatlı.
Modern teknoloji dünyasında rehberiniz. Her gün bizi çevreleyen teknolojileri ve araçları nasıl kullanacağınızı ve Internet'te ilginç şeyleri nasıl keşfedeceğinizi öğrenin.