vb shell 调用cmd 如何在调用完命令以后不关闭该CMD窗口

vb shell 调用cmd 如何在调用完命令以后不关闭该CMD窗口
比如我写shell"cmd /c dir",vbNormalFocus
怎么能让它搜索完的窗口不关闭呢?
顺便介绍下 CMD 后面 /* 的有哪些 做什么用的...

不关闭,可以写做:
Shell "cmd /k dir", vbNormalFocus

cmd /k表示 执行完后面的命令时,窗口保留,/c表示窗口关闭

/后面表示选项,常用用下列几种,你可以在命令行下输入 cmd /?看到:

/C 执行字符串指定的命令然后终断
/K 执行字符串指定的命令但保留
/S 在 /C 或 /K 后修改字符串处理(见下)
/Q 关闭回应
/D 从注册表中停用执行 AutoRun 命令(见下)
/A 使向内部管道或文件命令的输出成为 ANSI
/U 使向内部管道或文件命令的输出成为 Unicode
温馨提示:内容为网友见解,仅供参考
第1个回答  2010-09-02
把 vbNormalFocus 改成 VbMaximizedFocus

参考资料

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 函数之后的语句。

实例:
Dim RetVal
RetVal = Shell("C:\WINDOWS\CALC.EXE", 1)
第2个回答  2010-09-02
/c 改为 /k 调用完命令以后不关闭CMD窗口。
CMD 后面的选项很多,在CMD窗口输入 cmd /? 按回车可以查看。

vb shell 调用cmd 如何在调用完命令以后不关闭该CMD窗口
不关闭,可以写做:Shell "cmd \/k dir", vbNormalFocus cmd \/k表示 执行完后面的命令时,窗口保留,\/c表示窗口关闭 \/后面表示选项,常用用下列几种,你可以在命令行下输入 cmd \/?看到:\/C 执行字符串指定的命令然后终断 \/K 执行字符串指定的命令但保留 \/S 在 \/C 或 \/K 后修改字符串处理...

vb调用dos后让dos窗口不关闭
cmd本身就是个命令,你可以在命令提示符号下输入cmd\/?看看,vb里面调用默认的就是\/c,表示执行完命令就close关闭,还有一直是\/k,命令执行完keep保留界面。这样的话有两种方法可以办到,比如对于time\/t这个命令的调用如下:shell "cmd \/k time\/t",1 shell "cmd \/c time\/t && pause",1 ...

VBA 调用批处理,如何保持cmd窗口不闪退
cmdStr = "cmd.exe \/k TestStaTool.bat " + pn + " " + bv cmd \/k表示 执行完后面的命令时,窗口保留,\/c表示窗口关闭

VB:调用CMD命令如何才能运行时不闪现CMD窗口?
Shell "CMD", vbHide

怎么让VB执行DOS命令,且不显示CMD窗口?
VB可通过在Shell函数调用的可执行Dos命令时使用Windowstyle参数为vbHide(或0)不显示CMD窗口。Shell 函数,执行一个可执行文件,返回一个 Variant (Double),如果成功的话,代表这个程序的任务 ID,若不成功,则会返回 0。Private Sub Command1_Click() Shell "cmd", vbHideEnd Sub ...

vb.net shell运行cmd后如何从内存清除cmd进程
方法\/步骤 由于需要用到命令,因为我们首先要调出电脑的命令对话框,方法一是使用组合快捷键:Windows + R键,打开运行操作框,然后在打开后面输入 cmd ,完成后,点击底部的确定即可打开CMD命令操作框了。方法二是直接打开电脑左下角Windows开始页面,在搜索框里直接输入CMD命令,按回车键即可!如下图:...

如何用批处理运行某个程序时不显示命令提示符窗口
echo off if "%1"=="h" goto go mshta vbscript:createobject("wscript.shell").run(""%0"h",0)(window.close)&exit :go 下面写你的代码 这是把那个cmd窗口隐藏的代码,但是在进程里还是有个cmd.exe 进程,不运行这个批处理就直接结束该进程,把上面的代码加在开始的位置 ...

如何在vbs中调用cmd命令不显示黑框
CreateObject("WScript.Shell").Run "cmd.exe",0,FALSE这样执行后,cmd命令提示符窗口直接后台隐藏运行。

在vb中使用shell命令执行可执行文档会附带一个cmd窗口,如何关掉那个c...
Shell "notepad.exe", 1 使用shell后面加个参数1

VB中的shell调用cmd
当D:\\dd为空文件夹时,没有变化,因此如果连同文件夹一块复制的里边的话应该是两个过程,先创建文件夹D:\\a\\dd,然后复制所有文件到D:\\a\\dd中去 Private Sub Command4_Click()Shell "cmd.exe \/c md d:\\a\\dd "Shell "cmd.exe \/c xcopy d:\\dd d:\\a\\dd"end sub 这样既可 ...

相似回答