vb,关于shell调用cmd执行命令?

2024-11-20 03:34:34
推荐回答(4个)
回答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:

在VB的字符串中,两个半角双引号并列就代表一个"字符,所以你可以这样:
Shell "cmd.exe /c xcopy ""D:\dd"" ""D:\a"" /q /e"
这样写,比一连串的chr()要好看多了。
如果不考虑长文件名的因素,可以把双引号去掉也行:
Shell "cmd.exe /c xcopy D:\dd D:\a /q /e"

回答3:

Chr(34),为什么要加呢? cmd.exe /c xcopy "D:\dd D:\a /q /e" 这个命令肯定不对啊!是想要这样?"cmd.exe /c xcopy " + Chr(34) + "D:\dd" + Chr(34) + Chr(32)+ Chr(34) + "D:\a" + Chr(34) + Chr(32)+ "/q /e"

把 cmd.exe /c 改为 /k 看报什么错误,调好了,再改为/c

回答4:

把+换成&试试