Saya mencoba mengatur tugas jadwal untuk menjalankan exe tepat sekali sehari. Saya sudah mencoba yang berikut ini:
Pemicu setiap hari jam 4:00 pagi, "jalankan tugas sesegera mungkin setelah awal yang dijadwalkan tidak terjawab"
Pendekatan ini berfungsi dengan baik jika saya tidak memiliki kata sandi yang ditetapkan pada akun saya, dalam hal ini Windows mem-boot langsung ke Desktop - setelah penundaan singkat, tugas berjalan.
Ketika saya menambahkan kata sandi ke akun saya, tugas tidak lagi berjalan. Dalam riwayat tugas saya melihat peringatan dicatat:
Penjadwal Tugas tidak meluncurkan tugas "X" karena pengguna "Y" tidak masuk saat kondisi peluncuran terpenuhi. Tindakan Pengguna: Pastikan pengguna masuk atau ubah definisi tugas untuk memungkinkan peluncuran saat pengguna keluar.
Ini sepertinya peringatan bodoh - di bawah "Opsi keamanan" Saya memiliki "Jalankan hanya ketika pengguna masuk" dipilih. Mengapa Penjadwal Tugas mencoba meluncurkan tugas sebelum pengguna masuk?
Pemicu setiap hari jam 4:00 pagi dan "saat masuk", jalankan sesegera mungkin
Pendekatan ini tidak memiliki efek yang saya maksudkan, yaitu saya inginkan kedua ketentuan menjadi benar, yaitu jika "setelah 4:00 pagi setiap hari" adalah benar dan "masuk" adalah benar, maka jalankan tugas; dan untuk setiap acara "masuk" berturut-turut hari itu, "setelah pukul 4:00 setiap hari" tidak akan benar sehingga akan menunggu hari berikutnya. Sayangnya ini bukan cara Penjadwal Tugas bekerja, dan dengan pendekatan ini, tugas berjalan setelahnya setiap masuk.
Jalankan apakah pengguna masuk atau tidak
Saya tidak bisa menggunakan pendekatan ini karena exe yang saya coba jalankan kadang-kadang membutuhkan input pengguna ketika sudah selesai. Secara umum, ada berbagai alasan yang membuat orang tidak dapat menggunakan opsi ini.
Pilihan lain
Dalam bidang pemecahan masalah, saya sedang mempertimbangkan untuk menulis skrip batch yang akan menulis ke file dan dapat mendeteksi jika sudah dipanggil sebelumnya.
Tentunya harus ada cara yang lebih baik untuk mencapai kasus penggunaan penjadwalan yang tampaknya umum dan sederhana ini?
VersionBackup_20160201.txt
dan jika TIDAK ada, buat, lalu jalankan aplikasinya. Jika TIDAK ADA, maka JANGAN menjalankan VersionBackup.exe dan keluar. Dengan cara ini Anda memastikan per hari mis. & lt; YYYYMMDD & gt; bahwa itu hanya berjalan sekali dan membuat file itu tepat sebelum itu berjalan. Jika Anda berminat, saya punya contoh skrip logika yang akan saya tambahkan sebagai jawaban jika Anda pikir itu berpotensi menjadi solusi yang dapat Anda gunakan atau setidaknya tes dengan mungkin?Jawaban:
Oke, jadi di bawah ini adalah contoh dengan logika skrip batch yang sangat dasar dan sederhana seperti yang Anda nyatakan dalam komentar mungkin berguna dalam kasus Anda per masalah yang Anda hadapi.
Saya juga akan merujuk posting lain (di bagian bawah jawaban ini) pada Penjadwal Tugas dengan gotcha, dll. Untuk berjaga-jaga jika Anda memiliki masalah lebih lanjut dengan Penjadwal Tugas tidak berfungsi seperti yang diharapkan ketika menjalankan skrip batch. Meskipun opsi yang Anda pilih secara khusus dalam konfigurasi mungkin berbeda seperti halnya OS, pegambilan pada tingkat ini kemungkinan masih sama, jadi lihatlah dengan cepat pada pos itu juga jika Anda memiliki masalah dengan penjadwalan batch dengan Penjadwal Tugas tidak. bekerja seperti yang diharapkan.
Rincian Skrip Dasar
Itu
FOR /F
lingkaran menciptakanYYYYMMDD
variabel untuk digunakan untuk tanggal saat ini.Itu
CheckDir
adalah jalur drive lokal atau bahkan jalur UNC\\servername\sharename\folder
Anda akan meletakkan file cek kecil ini denganYYYYMMDD
bagian dari nama file itu setiap hari.C:\Path
atau pasang jalur UNC ke tempat yang perlu ditunjukkan di lingkungan AndaItu
checkfile
adalah HANYA nama file dengan%CheckDir%\
di depannya dan%DT%
ditambahkan ke akhir sebelum ekstensi .txt. Misalnya akan memberi Anda hasil akhirC:\Path\VersionBackup_20130202.txt
untuk hari ini seperti dalam contoh saya.Itu
START "" "C:\Path\VersionBackup.exe"
hanya perlu menunjuk ke jalur penuh di mana nama EXE ada yang melakukan operasi cadangan versi.Contoh Skrip Batch
sumber
FOR /F "TOKENS=1-3 DELIMS=/ " %%A IN ("%DATE%") DO SET "DT=%%A%%B%%C"
Letakkan .exe di salah satu folder berikut untuk menjalankannya ketika komputer dinyalakan. Anda tidak perlu melakukan apa pun di Penjadwal Tugas.
Hanya untuk pengguna saat ini:
Untuk semua pengguna:
Semoga ini membantu!
sumber