2008-11-14 34 views

Trả lời

12

Đây là cách bạn làm điều đó:

Shell "cmd echo foo", vbNormalFocus 
9

Tôi luôn sử dụng phương pháp Run của đối tượng wshShell, trong đó có sẵn sau khi bạn tham khảo Windows Script Host Object Model trong dự án của bạn:

Dim shell As wshShell 
Dim lngReturnCode As Long 
Dim strShellCommand As String 

Set shell = New wshShell 

strShellCommand = "C:\Program Files\My Company\MyProg.exe " & _ 
    "-Ffoption -Ggoption" 

lngReturnCode = shell.Run(strShellCommand, vbNormalFocus, vbTrue) 

Bạn có cùng chức năng như thứ e bình thường Shell tuyên bố, nhưng các tham số cuối cùng cho phép bạn quyết định có nên chạy chương trình shelled đồng bộ. Cuộc gọi trên, với vbTrue, là đồng bộ. Sử dụng vbFalse bắt đầu chương trình một cách không đồng bộ.

Và, như đã lưu ý trong các câu trả lời trước, bạn cần chạy trình bao lệnh bằng nút "/ c" để thực hiện lệnh nội bộ, như "echo foo" từ câu hỏi của bạn. Bạn sẽ gửi "cmd/c echo foo" đến phương thức Run.

+0

lngReturnCode = shell.Run (strShellCommand, vbNormalFocus, vbTrue) – nh32rg

+0

Cảm ơn, @ nh32rg. Đã sửa.Đó là một lỗi đã tồn tại trong hơn 4 năm. – JeffK

+0

Mã này dành cho vbScript không VB6 như được hỏi trong câu hỏi. Điều đó có thể rất khó hiểu đối với một người chỉ biết VB6 và tìm câu trả lời cho các câu hỏi VB6. – Jeff

4

một sự kết hợp của tất cả các

Shell Environ("COMSPEC") & " /c echo foo", vbNormalFocus 

bạn nên suy nghĩ trong việc mở rộng biến môi trường COMSPEC nếu bạn muốn hỗ trợ các hệ thống trước đó như cửa sổ 9x hoặc tôi.

Bạn cũng có thể lấy id quá trình sử dụng

pid = Shell(Environ("COMSPEC") & " /c echo foo", vbNormalFocus) 
4
Shell "cmd /c echo foo" 
-1

Chỉ sử dụng dấu ngoặc kép: ""...""

Ví dụ - gửi qua xác nhận để thực hiện một nhiệm vụ:

shell (""echo pass|schtasks /create /TR "C:\folder\...\program.exe" /more_parameters"") 

" đầu tiên được đóng trong "C:\... và t anh ta sẽ dừng lại.


Ahora explico en Español
Solo usa Comillas doble: ""...""

Ejemplo - MANDO un qua para confirmar la creacion de la tarea:

shell (""echo pass|schtasks /create /TR "C:\folder\...\program.exe" /more_parameters"") 

la causa es que la Primera Comillas " se cierra con las comillas de la ruta "C:\... y se pierde la cadena Chuỗi.

:) mẫu xe Espero cỡ sirva y buena vùng; giải

Các vấn đề liên quan