Lịch trình công việc từ dòng lệnh Windows?


15

Trên Linux có cron công việc và công việc. Có cách nào để sắp xếp công việc từ dòng lệnh trên Windows không?

Các Task Scheduler GUI không phải là những gì tôi sau đó. Tôi phải sửa đổi một tập lệnh để lên lịch một sự kiện theo một điều kiện nhất định ... vì vậy phải có cách gọi điều này từ dòng lệnh.

Câu trả lời:


13

Windows cũng có một "tại nơi làm việc". Mặc dù cú pháp là một chút khác nhau.

C: \ Tài liệu và Cài đặt \ Quản trị viên> tại /?
Lệnh AT lên lịch các lệnh và chương trình để chạy trên máy tính tại
một thời gian và ngày cụ thể. Dịch vụ lịch biểu phải được chạy để sử dụng
lệnh AT.

TẠI [\\ tên máy tính] [[id] [/ DELETE] | / XÓA [/ CÓ]]
TẠI [\ computername] thời gian [/ TƯƠNG TÁC]
    [/ MERYI: ngày [, ...] | / NEXT: ngày [, ...]] "lệnh"

\\ computername Chỉ định một máy tính từ xa. Các lệnh được lên lịch trên
                   máy tính cục bộ nếu tham số này bị bỏ qua.
id là số nhận dạng được gán cho một lịch trình
                   chỉ huy.
/ xóa Hủy một lệnh theo lịch trình. Nếu id bị bỏ qua, tất cả
                   lệnh theo lịch trình trên máy tính bị hủy bỏ.
/ yes Được sử dụng với lệnh hủy tất cả các công việc khi không còn nữa
                   xác nhận là mong muốn.
thời gian Chỉ định thời gian khi lệnh sẽ chạy.
/ tương tác Cho phép công việc tương tác với máy tính để bàn của người dùng
                   người đã đăng nhập vào thời điểm công việc chạy.
/ every: date [, ...] Chạy lệnh vào mỗi (các) ngày được chỉ định trong tuần hoặc
                   tháng. Nếu ngày bị bỏ qua, ngày hiện tại của tháng
                   được giả định.
/ next: date [, ...] Chạy lệnh được chỉ định trong lần xuất hiện tiếp theo của
                   ngày (ví dụ, thứ năm tới). Nếu ngày bị bỏ qua,
                   ngày hiện tại của tháng được giả định.
"lệnh" Là lệnh Windows NT, hoặc chương trình bó sẽ được chạy.

Thí dụ:

at 9:00 /interactive notepad.exe

Điều này sẽ khiến Notepad mở tương tác cho người dùng lúc 9:00 sáng.


3
"Tại" không được dùng nữa khi chúng ta nói chuyện. "Nhiệm vụ" là cách để đi bây giờ. Có lẽ bạn có thể thay đổi câu trả lời chính xác.
Marius

15

Sử dụng lệnh scht task . Nó có nhiều tùy chọn hơn atlệnh và một số tùy chọn tốt /mo LASTDAYcho ngày cuối cùng của tháng:

scht task lên lịch các lệnh và chương trình để chạy định kỳ hoặc tại một thời điểm cụ thể. Thêm và xóa các tác vụ khỏi lịch trình, bắt đầu và dừng các tác vụ theo yêu cầu, hiển thị và thay đổi các tác vụ theo lịch trình.

Cú pháp:

scht task / tạo / tn TaskName / tr TaskRun / sc calendar [/ mo modifier]
         [/ d ngày] [/ m tháng [, tháng ...] [/ i IdleTime] [/ st StartTime] 
         [/ sd StartDate] [/ ed EndDate] [/ s máy tính [/ u 
         [tên miền \] mật khẩu người dùng / p]] 
         [/ ru {[Tên miền \] Người dùng | "Hệ thống"} [/ rp Mật khẩu]] /?

1

Viết kịch bản shell của Windows để thực hiện bằng chương trình ngủ để trì hoãn:

@echo off

:loop
someprogram args
sleep 900
if somecondition goto loop

Chạy nó trong một cửa sổ vỏ của riêng nó. Cấu hình cmd.exe để chạy lên nguồn với tập lệnh này. sleepngủ trong một vài giây:

#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;
}
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.