Şimdi Ara

[Çözüldü] .bat dosyası kapanınca tekrar açılması nasıl sağlanır?

Bu Konudaki Kullanıcılar:
2 Misafir - 2 Masaüstü
5 sn
4
Cevap
0
Favori
2.373
Tıklama
Daha Fazla
İstatistik
  • Konu İstatistikleri Yükleniyor
0 oy
Öne Çıkar
Sayfa: 1
Giriş
Mesaj
  • Aslında konu Python sayılmaz ama bir kategori seçmek zorunda olduğum için burayı seçtim.

    Github'da birinin paylaştığı bir python scriptini kullanıyorum. Bir platfom üzerindekileri indirmeye yarıyor. Normalde bu scripti cmd üzerinden elle yazarak kullanılıyor fakat her defasında elle yazması zor olduğu için .bat dosyası hazırladım.

    Script sanırım tam mükemmel olmadığı için bir zaman sonra kendi kendine kapanıyor ve tekrar açmak gerekiyor. Çoğu zaman indirmeleri tam bitirmeden kendi kendine kapanıyor. Bazen, 1 dk sonra da kapanabiliyor 10 saat sonra da.

    Yapmak istediğim mümkünse bu oluşturduğum .bat dosyasını kapanınca tekrar açılmasını sağlamak.
    Yardımlarınızı bekliyorum.



    < Bu mesaj bu kişi tarafından değiştirildi WaxKitten -- 8 Şubat 2019; 1:18:11 >



  • Öncelikle kendi kendina kapanma sorununu Python betiği içinden halletmeni tavsiye ederim yani ben olsam öyle yapardım ancak yine de batch dosyası ile kapanan betiği çalıştıracam diyorsan ilk akla gelen yöntem bat dosyası başladığında python.exe prosess ID'lerini kaydedip (zaten çalışan başka python görevleri varsa onları) sonra python betiğini çalıştırıp hangi ID aldığını kaydetmek ve belli aralıkla örneğin her 30sn, 1dk, o proses hala çalışıyor mu kontrol etmek, etmiyorsa betiği tekrar başlatmak. bat dosyası içinden Windows proses ID'leri bulmak için gerekli komutlar nedir bilmem.
  • Teşekürler hocam sorun çözüldü.
    Siz bunu dedikten sonra birkaç anahtar kelimeyle arama yaptım ve karşıma Knas Restarter programı çıktı. Program tam dediğiniz gibi PID numarasını takip edip kontrol ediyordu ama sadece 1 işlemi takip edebildiği için benim işime yaramadı. Bana en az 4 işlem gerekliydi.

    Herneyse asıl konu:

    Tetik.bat şu şekilde:

    @echo off
    :main
    if exist Pencere.flag goto :eof
    start Dongu.bat
    :wait
    timeout 1 >nul
    tasklist /fi "Windowtitle eq Pencere"|find "cmd.exe" >nul || @goto :main
    goto :wait



    Dongu.bat şu şekilde:

    @echo off
    title Pencere
    echo Hello World!
    @pause
    break>Pencere.flag

    Olması gereken buymuş sağolsun yabancının biri yardımını esirgemedi zor bela yazdığım derdimi anladı :)

    Kırmızı yazının olduğu yere Python betiği için gerekenleri yazdım:
    cd /d D:\betiğin\yolu\
    betik.py ve gereken diğer parametreler --directory "D:\indirilenlerin\kaydedileceği\yer"


    Her iki dosyada da Pencere yazan yerleri değiştiriyorum böylece aynı anda birden fazla işlem yapabiliyorum.

    Tetik.bat'ı çalıştırıyorum hemen ardından Dongu.bat yani benim durum için python çalışıyor. Dongu.bat'ı her kapattığımda hemen geri açılıyor. Kesintisiz bir indirme sağlamış oluyor.
  • 
Sayfa: 1
- x
Bildirim
mesajınız kopyalandı (ctrl+v) yapıştırmak istediğiniz yere yapıştırabilirsiniz.