PowerShell'de sessiz yükleme yaparken ilerleme çubuğuna ihtiyacınız var


2

İşimde, aynı yazılımı tekrar yükleyip yeniden kuruyorum. Powershell'de benim için her şeyi sessizce kurmak için harika çalışan bir senaryo yazdım. Bununla birlikte, sessiz olduğu için geri bildirim yoktur ve programı kullanan herkes bunun durduğunu ya da çalışmadığını düşünüyor.

Sessiz kurulumları çalıştırmanın ve bir durum çubuğu yüklemenin bir yolunu bulmaya çalışıyorum. İlerleme çubuğu için bu kodla çalışıyorum:

for ($i = 1; $i -le 100; $i++ ){write-progress -activity "Search in Progress" -status "$i% Complete:" -percentcomplete $i; Start-Sleep -Milliseconds 10}; .\Untitled11.ps1

Ama benim hayatım boyunca, kurulumlarla aynı anda çalışmasını sağlayamıyorum. Arka plan başlatma ve paralel çalıştırma gibi farklı komutlar denedim, ancak durum çubuğu, yerleştirdiğim yere bağlı olarak her zaman kurulumdan önce veya sonra çalışır.

Hem kurulum hem de durum çubuğunu aynı anda çalıştırmak için nasıl bir fikrim var? Durum barkoduyla evli değilim, sadece çalıştığım kişi. Yani daha kolay bir yol veya daha fazla uyarlanabilir kod varsa, ben ona açığım.


Sessizce yüklediğiniz yazılım MSI biçiminde mi? Öyleyse, sessiz yükleme parametrelerini tamamen sessiz kalmak yerine ilerleme çubuğu içerecek şekilde değiştirebilirsiniz. Şuna bakın: msdn.microsoft.com/en-us/library/windows/desktop/… Ve "/ q" bölümünü kontrol edin
Stephen R.

Bazı msi, bazıları exe. Bazılarını yalnızca kısmi sessizlikle yapmayı düşündüm, ancak tüm farklı yazılımlarla kendi durum çubuklarını ayrı ayrı göstermeleri çok karışık görünüyordu, bu yüzden tüm süreç boyunca bir durum çubuğuna gitmeye başladım.
Maizzer

Peki bir ilerleme çubuğu yerine, "lütfen yükleme işleminin bitmesini bekleyin" gibi bir metni yankıladığınıza dair bir bilgi isteyince ve sonra bu pencere tamamlandığında kapanacak mı?
Stephen R.

Yanıtlar:


1

Bu cmdlet'i kullanarak bir uygulamanın kurulumunun canlı ilerlemesini göremezsiniz. Write-Progress" çalışan bir komut dosyası veya komut dosyası " durumunu göstermek için tasarlanmıştır . Bu cmdlet'in yükleme ilerleme bilgilerini toplaması mümkün değildir.

Yorumlarda belirtildiği gibi, betiğin ilerleyişini kullanıcıyı uyaracak mesajlar yayınlamak daha çekici olabilir.

"This will not detect errors, but give a general sense of completion."

"Running Program A (step 1 of 3)..."
    (run_program_A)
"Program A finished."

"Running Program B (step 2 of 3)..."
    (run_program_B)
"Program B finished."

"Running Program C (step 3 of 3)..."
    (run_program_C)
"Program C finished."

"Finished."

1

Yazma İlerlemesi, uygulamanızın yükleme ilerlemesi hakkında gerçek bir görüş sahibi değildir. Bu sadece güncelleme yapmak istediğinizde kendinizi artırmak zorunda olduğunuza dair aptalca bir gösterge.

Yükleme işleminizin bir parçası olarak birden fazla MSI / EXE dosyası oluşturuyorsanız, işlemin her adımından sonra bir Yazma İlerlemesi eklemeniz gerekir. Her MSI / EXE komut satırının adını içeren bir dizi doldurabilir ve bu döngüyü geçebilir ya da aynı kimlik numarasını kullanarak yalnızca birden fazla Yazma İlerleme ifadesi kullanabilirsiniz.

Ayrıca, ilerleme çubuğu yalnızca bir komutun çalışması tamamlandığında artırılabilir. Yüklemeyi başka bir komut dosyasına ekliyorsanız, bu bir komutu oluşturur ve artan ilerleme elde edemezsiniz. Bireysel bileşenlerinizi aynı betiğin parçası haline getirmeniz gerekir. Bu satırlar boyunca, kurulumunuz uzun süren büyük bir programsa, bu da işe yaramaz.


0

Bunu yapacak iş oluşturun. Bu, eşzamanlı yerine eşzamansız çalıştırmayı etkinleştirir, daha sonra yüklendikten sonra durur ve işi kaldırır.


1
Bu cevap, zamanlanmış bir görev anlamına geldiğini varsaydığım bir işin nasıl yaratılacağı, durdurulacağı ve kaldırılacağı konusunda adımlar sağlayarak daha da geliştirilebilir.
Worthwelle
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.