Arama butonu
Bu konudaki kullanıcılar: 1 misafir
2
Cevap
2409
Tıklama
0
Öne Çıkarma
[Çözüldü] .bat dosyası kapanınca tekrar açılması nasıl sağlanır?
W
5 yıl
Yüzbaşı
Konu Sahibi

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 >

T
5 yıl
Yarbay

Ö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.


Bu mesaja 1 cevap geldi.
W
5 yıl
Yüzbaşı
Konu Sahibi

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.




Bu mesajda bahsedilenler: @revivo72
DH Mobil uygulaması ile devam edin. Mobil tarayıcınız ile mümkün olanların yanı sıra, birçok yeni ve faydalı özelliğe erişin. Gizle ve güncelleme çıkana kadar tekrar gösterme.