Phương pháp stackoverflow được chấp thuận (và do đó chính xác) là gì để buộc VBS chạy bằng cscript thay vì wscript - bất kể người dùng cố gắng gì? Một tìm kiếm Google nhanh chóng cho thấy rất nhiều ví dụ, nhưng một số trong số họ chỉ đơn giản là không làm việc và những người thường không xử lý thực tế rằng nó có thể đã được chạy với các đối số vì vậy tôi muốn biết những gì cách tốt nhất là.Buộc VBS chạy bằng cscript thay vì wscript
Dưới đây là một ví dụ mà không xử lý đối số:
sExecutable = LCase(Mid(Wscript.FullName, InstrRev(Wscript.FullName,"\")+1))
If sExecutable <> "cscript.exe" Then
Set oShell = CreateObject("wscript.shell")
oShell.Run "cscript.exe """ & Wscript.ScriptFullName & """"
Wscript.Quit
End If
Tôi đánh giá cao rằng điều này có lẽ dễ dàng sửa đổi để xử lý đối số, nhưng nhận ra rằng điều này có thể không phải là cách tốt nhất để tiếp cận vấn đề.
Bối cảnh: Tôi đang viết một tập lệnh có thể chạy bằng cách nhấp đúp hoặc (rất có thể) từ tệp lô DOS hoặc làm tác vụ được lên lịch. Nó có thể chứa một hoặc nhiều đối số dòng lệnh tùy chọn.
Thêm việc xử lý WScript.Arguments và bạn đã đặt. –
@Kyle: nghe như một câu trả lời cho tôi không phải là một bình luận. – AnthonyWJones
Dường như bạn đã tự trả lời, tôi vừa xác nhận. –