Cách chạy tệp bat hoặc vbs trong trình lập lịch tác vụ


0

Tôi có một tệp .bat dài một dòng và gọi một tập lệnh vb đặc biệt mở một tệp excel và chạy một số macro:

cscript priordays.vbs "C:\PATHANME\FILENAME.xlsm"

Khi tôi chạy nó bằng cách nhấp đúp, nó chạy tốt và thành công.

Khi tôi chạy trong trình lập lịch tác vụ, nó báo nó đã chạy thành công (mã 0x0), nhưng tập lệnh không thực thi. Tôi đã cài đặt nó để chạy với quyền cao nhất, bất kể người dùng có đăng nhập hay không, đánh thức máy, v.v. Vẫn không có gì.

Đối với những người hỏi những gì trong tập lệnh vb, đó là:

Dim arts, objExcel

Set args = WScript.ARguments
Set objExcel = CreateObject("Excel.Application")

objExcel.Workbooks.Open args(0)
objExcel.visible = True

objExcel.Run "Macro1"
objExcel.Run "Macro2"
objExcel.Run "Macro3"

objWorkbook.Close

objExcel.Quit

Tôi tìm thấy mã đó ở nơi khác trên trang web này, cùng với hướng dẫn sử dụng tệp .bat. Nếu có một cách để chạy tất cả từ tập lệnh và cố gắng khởi chạy tập lệnh từ trình lập lịch tác vụ, tôi cũng sẽ làm điều đó.


Vấn đề là tự động hóa văn phòng com không hoạt động trong một nhiệm vụ theo lịch trình ra khỏi hộp. Thật khó để làm điều này thực sự hoạt động vì nó liên quan đến việc thay đổi quyền trong bảng điều khiển quản lý dcom 32 bit ( C:\Windows\SysWOW64\dcomcnfg.exe). Tôi không có tài liệu phù hợp trong tầm tay, nhưng điều đó sẽ chỉ cho bạn đi đúng hướng.
megamorf

Tôi có thể tìm thấy tệp, nhưng tôi không biết phải làm gì với nó. Tôi tin rằng tôi đã thoát khỏi chiều sâu của mình.
mbald23

Bạn có thể thử tạo macro khởi động cho office và sau đó chỉ cần chạy cscript Excel.exe và sau đó macro khởi động sẽ chạy và đóng excel.
RamonRobben

Đây là một liên kết MS giải thích cách thực hiện: blog.technet.microsoft.com / Từ
megamorf

@megamorf, tôi đã đi vào và đưa ra tất cả các quyền, nhưng nó không thay đổi gì cả.
mbald23

Câu trả lời:


0

Như @Megamorf đã nói trong bình luận của mình, nó thực sự rất khó để làm. Vì vậy, bạn sẽ tốt hơn khi sử dụng macro khởi động và khởi đầu được sắp xếp để đạt được mục tiêu của mình.

Làm thế nào nó hoạt động? Bạn tạo một macro khởi động cho excel sẽ bắt đầu mọi lúc excel bắt đầu.

Nếu bạn kết hợp điều này với bắt đầu theo lịch trình bằng cách sử dụng lệnh at từ câu hỏi sau: Chạy tệp bat bằng trình lập lịch Windows

Đối với bạn, lệnh AT sẽ là ex

at 20:30 /every:M,T,W,Th,F,S,Su "excel.exe"

Điều này sẽ bắt đầu xuất sắc mỗi ngày vào lúc 8:30 PM. Excel sẽ chạy macro khởi động.

Cách hủy tác vụ theo lịch trình

  1. Bấm Bắt đầu, trỏ đến Chương trình, trỏ đến Phụ kiện, rồi bấm Dấu nhắc.
  2. Tại dấu nhắc lệnh, nhập dòng sau, sau đó nhấn ENTER để hiển thị danh sách các dịch vụ hiện đang chạy:

    bắt đầu ròng

  3. Nếu Trình lập lịch tác vụ không được hiển thị trong danh sách, hãy nhập dòng sau, sau đó nhấn ENTER:

    net bắt đầu "lập lịch nhiệm vụ"

  4. Tại dấu nhắc lệnh, nhập dòng sau (sử dụng các tham số phù hợp với tình huống của bạn), rồi nhấn ENTER:

    tại \ tên máy tính id / xóa | / xóa / có

\\ computername là một máy tính nằm trong mạng. Bạn không phải điền vào đó.


Đưa ra một shot trong giây lát. Nếu tôi muốn dừng điều này tại một số điểm, tôi sẽ sử dụng cái gì làm kịch bản dừng của mình?
mbald23

@ mbald23 khi bạn truy cập liên kết từ lệnh và cuộn xuống nhưng bạn sẽ thấy hướng dẫn về cách hủy lệnh. Tôi sẽ thêm nó vào câu trả lời của tôi.
RamonRobben

Chạy vào một vấn đề. Không chắc chắn nếu có cách để tải lên ảnh chụp màn hình, nhưng lệnh đã từ chối nó là không hợp lệ.
mbald23

@ mbald23 bạn có thể tải ảnh chụp màn hình lên một trang web từ imgur hoặc một cái gì đó và đăng liên kết.
RamonRobben

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.