Windows görev zamanlayıcı ile bir toplu iş dosyası çalıştırma


155

Daily.bat bir toplu iş dosyası var, bu kod:

cd C:\inetpub\wwwroot\infoweb\factuur\cron
c:\PHP\php.exe -f ./cron_pdf.php
ftp -s:ftp_upload.txt ftp.site.be

Windows 7'de görev zamanlayıcı ile bir görev oluşturdum. Toplu işi manuel olarak çalıştırdığımda her şey yolunda gidiyor, ancak görev zamanlayıcı ile çalıştırmaya çalıştığımda hiçbir şey olmuyor.

Benim eylemim

'run script' "C:\inetpub\wwwroot\site\x\cron\daily.bat"

UAC kapalı ve ben Yönetici.

Bunun neden çalışmadığına dair bir fikrin var mı?


Bu sorunun offtopik olup olmadığından emin değilim ama bunun için serverfault.com'da daha iyi yanıtlar alabilirsiniz .
Hans Olsson

Teşekkürler Ben de serverfault üzerinde göndermeye çalışacağım
Ruben

bu da yararlı olabilir: serverfault.com/questions/734035/…
Ruben

Yanıtlar:


287

Aynı sorunla karşılaştım, ancak toplu komut dosyamı değiştirmek zorunda kalmadan başka bir çözüm buldum.

Kaçırdığım tek şey 'Eylem' ayarları - "Başlama yeri (İsteğe bağlı)" seçeneğidir.

Görev özelliklerini seçin -> Eylem sekmesi -> Düzenle -> Aşağıdaki gibi doldurun:

  1. Eylem : bir program başlatın
  2. Program / komut dosyası : toplu komut dosyanızın yolu örn.C:\Users\beruk\bodo.bat
  3. Bağımsız değişkenler ekleyin (isteğe bağlı) : <gerekirse - kodunuza bağlı olarak>
  4. Başlama yeri (isteğe bağlı) : Toplu komut dosyası konumunuzun tam yolunu girin örn. C:\Users\beruk\(Başlangıç ​​Noktası'na tırnak işareti koymayın)

Sonra Tamam'ı tıklayın

Benim için çalışıyor. İyi şanslar!


8
Orijinal gönderinin oldukça eski olduğunu biliyorum. Ancak bu yazı, bu sorunun cevabını denerken google aramadaki en iyi bağlantılardan biriydi. Bence bulguları paylaşmak istiyorum. Her ihtimale karşı, ben de dahil olmak üzere herkes bunu unutuyor.
Ghazi

4
Aslında 'Start in (isteğe bağlı)' değerine ihtiyacınız olduğuna inanmıyorum - Onsuz, basit, bağımsız bir .bat dosyasını çalıştırabiliyorum. Açık adımlar olsa için teşekkür ederiz - çok basit bir yürüyüş isteyenler için yararlı!
DCaugs

23
@DCaugs, Start InParametre ayarlanmadan, zamanlanmış toplu iş dosyam hiç çalışmaz. (Windows 7)
Justin Skiles

2
Bu çözüm benim için işe yaramadı. @Arun Raja tarafından verilen cevap iyi çalıştı.
Cagy79

7
@DCaugs Start inBenim için çalışmasının ana nedeni bu.
Gustavo

54

Yukarıdaki yöntemin hiçbiri işe yaramadı. Ben bir öğretici dedi bu şekilde denedim ve çalıştı.

Aksiyon:

Start a program 

Program / komut dosyası:

cmd

Bağımsız değişken ekle:

/c start "" "E:\Django-1.4.1\setup.bat"

Win7 Pro'da benim için çalıştı. Parolalı bir hesabınız olması gerekir (boş parolalar iyi değildir)


1
Hemfikirim! önceki çözümlerin hiçbiri benim için bir Windows Server 2008 üzerinde çalışmadı. Bu cevap benim için hile yaptı! Teşekkürler.
Cagy79

Keşke sana +2000 verebilseydim. Gün boyu farklı yaklaşımlar deniyorum ve çözümünüz dışında hiçbir şey iyi sonuç vermedi. Sırayla farklı parametrelerle 10 kez başka bir toplu iş dosyası başlatan bir toplu iş dosyası başlatmak zorunda kaldı. Konsoldan her şey iyi çalıştı, ancak Görev Zamanlayıcı aynı anda 4'ten fazla işlem açmayı reddetti. Garipti ... Tekniğinizle birlikte 10 sürecin tamamı başlatıldı.
Icarus

Bu yöntem benim için çalıştı. Ancak, zamanlayıcıda, geçmiş sekmesinde, görev cmd olduğundan hemen başlar, çünkü başlattığı .bat dosyası değildir. Bir yedekleme işlemi olan yarasa dosyası 2-3 saat içinde sona erdiğinden, durumu hakkında hiçbir fikrim yok.
azzurroverde

u durumunu bildirmek için yarasa dosya tamamlanmasının sonunda bir posta bildirimi tutmanız gerekir. bu bir yol.
Arun Raja

Bu, @ Ghazi'nin kabul edilen cevabında belirtildiği gibi, belirtilen bir dizinde çalışacak şekilde ayarlanması gereken ipucu ile birlikte çalıştı ve "en yüksek ayrıcalıklarla çalıştır" ın seçildiğinden emin olun.
mheavers

43

Yarasa dosyaları hala Windows 8+ Görev Zamanlayıcı'da çalışmayanlar için, Ghazi'nin cevabına eklemek istediğim bir şey - çok acı çektikten sonra:

1) Eylemler altında , "Görev Oluştur" yerine " TEMEL görev oluştur" u seçin

Bunu benim için yaptı, ayrıca unutmamak için diğer konular:

  1. Kullanım Başlangıç olarak bu isteğe söylese de, toplu iş dosyasının yolunu
  2. gerekiyorsa tırnak işareti kullanın, bir programı başlat> program / komut dosyası girişinizde yani "C: \ komut dosyaları \ runme.bat" ...
  3. ANCAK Başlangıç ​​alanınızda tırnak işareti KULLANMAYIN . (Çılgın ama gerçek!)

Bu, komut istemini tetiklemeye gerek kalmadan çalıştı.

(Maalesef temsilcim Ghazi'nin yorumlarına Temel Görev ipucumu eklemek için çok düşük)



7

Şimdi çalışıyor. Ben de öyle yaptım. Muhtemelen çalışmasını sağlamak için tüm bu adımlara ihtiyacınız olmayacak, ancak hepsini denediğinizden emin olmak için:

  • Zamanlanan görevinizin hesap parametrelerini kontrol edin ve birisinin makinede oturum açmış olup olmadığına göre çalışacak şekilde ayarlandığından emin olun

  • birçok ayrıcalık / hak ile çalıştır

  • Önce tam yola gittiğinizden emin olun: cd C: \ inetpub \ wwwroot \ infoweb \ factuur \ cron

  • Toplu iş dosyalarınızda çift tırnak işareti kullanmayın (nedenini bilmiyorum ama yardımcı oluyor gibi görünüyor)

  • Süper yönetici olun, komut istemine 'Net kullanıcı yöneticisi / etkin: evet' girin, süper yönetici olarak oturumu kapatın ve oturum açın, böylece UAC kapalı


2
Söylemek için üzgünüm, ama bu çok kötü yazılmış bir cevap. Kabul edilen cevap olarak uygun cevabın seçildiğinden emin olurum.
Ocak'ta jwize

5

"Başlangıç" ın bir ARKA IŞIK ile bitmediğinden emin olun .


1
Hangi işletim sistemi sürümünü veya görev türünü veya bu bilgilerin ne için geçerli olduğunu açıklayabilir misiniz? Kabul edilen cevap bir \ içerir, bu yüzden bazı sistemlerde çalışmalıdır - nerede çalışmaz?
lessthanideal

Bu, Windows Server 2012'de zamanlanmış bir 'foo.cmd' görevini düzeltti. 'Start in', 'C: \ Foo \' olarak ayarlandığında görev 0x8007001 çıkış kodu hatasıyla başarısız oldu, ancak 'Start in' ile 'C' olarak ayarlandı : \ Foo 'görev iyi gitti.
Aaron

5

Görevimin sadece güç kablosu olmayan bir dizüstü bilgisayarda çalıştığı için tetiklenmediği bir sorun vardı ... Koşullar sekmesinde, AC gücü bağlı değilken bir görevin çalışmaması için varsayılan olarak işaretlenir.


3

Windows7 Pro altında, Arun'nun çözümünün benim için çalıştığını buldum: Bunu "kullanıcı oturum açmamış" olsa bile çalıştırabilirim, en yüksek priveledges kullanmayı seçtim.

Geçmiş deneyimlerden, bir parolaya sahip bir hesabınız olması gerekir (boş parolalar iyi değildir) ve sihirbazı bitirdiğinizde program sizden parola istemezse, geri dönün ve bir şey bitene kadar düzenleyin!

Hangisinin işe yaradığı net değilse, bu yöntemdir

Action: start a program
Program/script : cmd
      (doesn't need the .exe bit!)
Add arguments:
    /c start "" "E:\Django-1.4.1\setup.bat" 

3

Birkaç saat boyunca bununla uğraştım ve birçok farklı öneri denedim.

Sonunda aşağıdakileri yaparak işe başladım:

Eylem: bir program başlatın

Program / Komut Dosyası: C: ​​\ scriptdir \ script.bat

Bağımsız değişken ekleme (isteğe bağlı) script.bat

Başlangıç ​​yeri (isteğe bağlı): c: \ scriptdir

sadece kullanıcı giriş yaptığında çalıştır

en yüksek ayrıcalıklarla koş

için yapılandır: Windows Vista, Windows Server 2008


2

Geri kalanların tümü sizin için başarısız olursa, görevi çalıştırmaya çalıştığınız kullanıcının kullanmaya çalıştığınız dosyaya erişimi olduğundan emin olun.

Benim durumumda, hesabın erişemediği C: \ Users \ Administrator \ Desktop'tan bir toplu iş dosyası çalıştırmaya çalışıyordum. C: \ konumunda nötr bir konuma taşımak sorunu çözdü.


1

Lütfen görevimizi yürütmek için hangi kullanıcı hesabını kullandığınızı kontrol edin. Görevinizi varsayılan kullanıcıdan farklı bir kullanıcıyla çalıştırıyor olabilirsiniz ve bu kullanıcı bazı ekstra ayrıcalıklar gerektirir. Ayrıca görev yürütülmüş olabilir, ancak toplu iş dosyası bazı kullanıcı yanıtını beklediğinden herhangi bir etki göremezsiniz, bu nedenle işleminizin çalıştığını görürseniz lütfen görev yöneticisini kontrol edin. Bir kez bazı web sayfasının svn güncellemesi ile bir toplu iş planladığım ve svn sunucu sertifikasını kabul etmesini istediğinden işlem askıda kalıyor.


1
  1. Cmd / batch dosyanızda çift tırnak kullanmayın
  2. Tam yol başlangıcına gittiğinizden emin olun (isteğe bağlı) :
    C: \ Necessary_file \ Reqular_task \ QDE \ cmd_practice \

resim açıklamasını buraya girin



0

Çeşitli varyasyonları test etmek için Görev Zamanlayıcı ana penceresindeki Çalıştır düğmesini kullanarak nihayet doğru ayarları buldunuz. Bu iki seçenek birleştirilmelidir: -Yalnızca kullanıcı oturum açtığında çalıştır -En yüksek ayrıcalıklarla çalıştırın. Diğer tüm varyasyonlar başarısız oldu. Bu konuda boşa harcanan her zaman sinir bozucu ama en azından işe yarıyor. İşletim Sistemi: WINDOWS 8 CORE (BASIC) VERSION


0

Görevi yüksek ayrıcalıklarla çalıştırmayı deneyin.

c: \ temp \ gibi "start in folder" a yolun sonuna \ yazın

Nedenini bilmiyorum, ama bu bazen benim için işe yarıyor.


0

Aksiyon: Start a Program

Program / komut dosyası: C:\Windows\System32\cmd.exe

Bağımsız değişken ekle: /k start "" "E:\scripts\example.bat"

Ekle exittoplu iş dosyasının sonuna.

Cmd penceresi seçerseniz gösterilmez Run whether user is logged in or not. Run only when user is logged onPencereyi çalışırken görmek için seçmeniz gerekir .

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.