vb中怎么引用cmd执行命令呢

2024-12-03 03:27:26
推荐回答(2个)
回答1:

VB中Shell执行CMD命令使用如下代码

Shell "cmd.exe /c 你要执行的命令"

其中要执行的命令中需要注意空格问题 如果一个参数中有空格就需要使用双引号引起来,双引号在VB字符串中使用两个双引号("")表示。

例如:

Shell "cmd.exe /c copy ""d:\ab c.txt"" ""d:\a bc.txt"""


Shell 函数
执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。
语法
Shell(pathname[,windowstyle])
Shell 函数的语法含有下面这些命名参数:
部分 描述
pathname 必要参数。Variant (String),要执行的程序名,以及任何必需的参数或命令行变量,可能还包括目录或文件夹,以及驱动器。
Windowstyle 可选参数。Variant (Integer),表示在程序运行时窗口的样式。如果 windowstyle 省略,则程序是以具有焦点的最小化窗口来执行的。
windowstyle 命名参数有以下这些值:
常量 值 描述
vbHide 0 窗口被隐藏,且焦点会移到隐式窗口。
VbNormalFocus 1 窗口具有焦点,且会还原到它原来的大小和位置。
VbMinimizedFocus 2 窗口会以一个具有焦点的图标来显示。
VbMaximizedFocus 3 窗口是一个具有焦点的最大化窗口。
VbNormalNoFocus 4 窗口会被还原到最近使用的大小和位置,而当前活动的窗口仍然保持活动。
VbMinimizedNoFocus 6 窗口会以一个图标来显示。而当前活动的的窗口仍然保持活动。
说明
如果 Shell 函数成功地执行了所要执行的文件,则它会返回程序的任务 ID。任务 ID 是一个唯一的数值,用来指明正在运行的程序。如果 Shell 函数不能打开命名的程序,则会产生错误。
注意 缺省情况下,Shell 函数是以异步方式来执行其它程序的。也就是说,用 Shell 启动的程序可能还没有完成执行过程,就已经执行到 Shell 函数之后的语句。

回答2:

 Dim pid As Long
    pid = Shell("cmd.exe /C Ping " & Text1.Text & " > c:\r.txt", vbHide)
    ' 提示
    Text2.Text = "正在执行Ping " & Text1.Text & " ..."
    '等待Shell执行结束
    Dim hProc As Long
    hProc = OpenProcess(PROCESS_QUERY_INFORMATION, 0, pid)
    Dim ExitCode As Long
    Do
        Call GetExitCodeProcess(hProc, ExitCode)
        DoEvents
    Loop While ExitCode = STILL_ALIVE
    '清空,准备显示结果
    Text2.Text = ""

    '打开 C:\r.txt文件
    Open "c:\r.txt" For Input As #1
    Dim strLine As String
    Do Until EOF(1)
        Line Input #1, strLine
        '显示执行结果
        Text2.Text = Text2.Text & strLine & vbNewLine
    Loop

    '关闭文件
    Close #1
    '删除C:\r.txt
    On Error Resume Next
    Kill "c:\r.txt"