กำหนดเวลางานจากบรรทัดคำสั่งของ Windows?


15

บน Linux มีงานcronและที่งาน มีวิธีกำหนดเวลางานจากบรรทัดคำสั่งบน Windows หรือไม่?

Task Scheduler GUI ไม่ได้เป็นสิ่งที่ฉันหลังจาก ฉันต้องแก้ไขสคริปต์เพื่อกำหนดเวลากิจกรรมตามเงื่อนไขที่แน่นอน ... ดังนั้นจึงต้องมีวิธีการเรียกสิ่งนี้จากบรรทัดคำสั่ง

คำตอบ:


13

Windows ยังมี "ที่ทำงาน" แม้ว่าไวยากรณ์จะแตกต่างกันเล็กน้อย

C: \ Documents และ Settings \ Administrator> ที่ /?
คำสั่ง AT กำหนดเวลาคำสั่งและโปรแกรมให้ทำงานบนคอมพิวเตอร์ที่
เวลาและวันที่ที่ระบุ บริการ Schedule ต้องทำงานเพื่อใช้
คำสั่ง AT

ที่ [\\ ชื่อคอมพิวเตอร์] [[id] [/ DELETE] | / DELETE [/ YES]]
ที่ [\\ ชื่อคอมพิวเตอร์] เวลา [/ โต้ตอบ]
    [/ ทุก: วันที่ [, ... ] | / NEXT: date [, ... ]] "command"

\\ computername ระบุคอมพิวเตอร์ระยะไกล คำสั่งถูกกำหนดเวลาไว้ใน
                   โลคัลคอมพิวเตอร์หากไม่ระบุพารามิเตอร์นี้
id คือหมายเลขประจำตัวที่กำหนดให้กับตารางเวลา
                   คำสั่ง
/ delete ยกเลิกคำสั่งที่กำหนดเวลาไว้ หากไม่ได้ระบุรหัสไว้
                   คำสั่งที่กำหนดเวลาไว้ในคอมพิวเตอร์จะถูกยกเลิก
/ ใช่ใช้พร้อมกับยกเลิกคำสั่งงานทั้งหมดเมื่อไม่มีเพิ่มเติม
                   ต้องการการยืนยัน
time ระบุเวลาที่คำสั่งจะทำงาน
/ แบบโต้ตอบอนุญาตให้งานโต้ตอบกับเดสก์ท็อปของผู้ใช้
                   ผู้ที่เข้าสู่ระบบในเวลาที่งานทำงาน
/ every: date [, ... ] เรียกใช้คำสั่งในแต่ละวันที่ระบุของสัปดาห์หรือ
                   เดือน. หากไม่ระบุวันที่วันที่ปัจจุบันของเดือน
                   จะถือว่า
/ next: date [, ... ] เรียกใช้คำสั่งที่ระบุในการเกิดขึ้นครั้งถัดไปของ
                   วัน (ตัวอย่างเช่นวันพฤหัสบดีหน้าถัดไป) หากไม่ระบุวันที่
                   วันปัจจุบันของเดือนจะถือว่า
"command" คือคำสั่ง Windows NT หรือโปรแกรมแบตช์ที่จะเรียกใช้

ตัวอย่าง:

at 9:00 /interactive notepad.exe

นี่จะทำให้Notepadเปิดให้ผู้ใช้โต้ตอบในเวลา 9.00 น. ในตอนเช้า


3
"at" เลิกใช้แล้วในขณะที่เราพูด "schtasks" เป็นวิธีที่จะไปตอนนี้ บางทีคุณอาจเปลี่ยนคำตอบที่ถูกต้องได้
Marius

15

ใช้คำสั่งschtasks มีตัวเลือกมากกว่าatคำสั่งและตัวเลือกที่ดีเช่น/mo LASTDAYวันสุดท้ายของเดือน:

schtasksกำหนดเวลาคำสั่งและโปรแกรมให้ทำงานเป็นระยะหรือตามเวลาที่กำหนด เพิ่มและลบงานออกจากกำหนดเวลาเริ่มและหยุดงานตามต้องการและแสดงและเปลี่ยนแปลงงานที่กำหนด

ไวยากรณ์:

schtasks / create / tn TaskName / tr กำหนดตาราง TaskRun / sc [/ mo โมดิฟายเออร์]
         [/ d วัน] [/ m เดือน [, เดือน ... ] [/ i IdleTime] [/ st StartTime] 
         [/ sd StartDate] [/ ed EndDate] [/ s คอมพิวเตอร์ [/ u 
         [domain \] รหัสผ่านผู้ใช้ / p]] 
         [/ ru {[Domain \] ผู้ใช้ | "ระบบ"} [/ รหัสผ่าน rp]] /?

1

เขียนเชลล์สคริปต์ Windows เพื่อทำโดยใช้โปรแกรม sleep เพื่อหน่วงเวลา:

@echo off

:loop
someprogram args
sleep 900
if somecondition goto loop

รันในหน้าต่างเชลล์ของมันเอง กำหนดค่า cmd.exe เพื่อให้ทำงานกับสคริปต์นี้ sleepหลับเป็นเวลาหลายวินาที:

#include <stdio.h>
#include <string.h>
#include <stdlib.h>
#include <Windows.h>

int main(int argc, char* argv[])
{
    int n = atoi(argv[1]);

    Sleep(n * 1000);

    return 0;
}
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.