小弟编了个程序 里面需要用shell命令调用CMD.exe中的DOS命令 ,现在的问题是此命令写在了一个循环中,循环总共700多条,一运行同时弹出了700多个CMD.EXE,搞的机器都要挂了。
请问如何进行控制,待一条DOS命令全部执行结束后,在执行下一条啊?代码如下:
FOR I=0 TO 700
SHELL("cmd.exe/c 调用的相关DOS命令",vbhide)
next i
请高人帮忙啊 如何对其进行控制啊?按顺序先执行完第一条 然后关闭 进行第二条运算 小弟不胜感激
请问如何进行控制,待一条DOS命令全部执行结束后,在执行下一条啊?代码如下:
FOR I=0 TO 700
SHELL("cmd.exe/c 调用的相关DOS命令",vbhide)
next i
请高人帮忙啊 如何对其进行控制啊?按顺序先执行完第一条 然后关闭 进行第二条运算 小弟不胜感激
解决方案 »
- 怎样查看远程端口是否打开?
- 唉,分越来越少了,提问的分都没了
- 如何使commondialog对话框居中
- 在VB的exe工程里如果调用word中的“插入符号”和“插入公式”对话框?
- 有两个表(都含有ID字段),如何查询两个表中ID不一样的记录?很急啊!
- 如何对txt数据求列相关系数?
- 多会员商务网站的会员信息离线保存批量上传问题, 有兴趣进来睢睢!!
- 信息传递如何实现
- 如何找到windowsXP风格的全系列控件
- 请教该如何改变Listview控件中ListItem项(3-report模式)的背景色?(内空)
- GetForegroundWindow为什么总是返回一个很大的数字?
- Mschart 画图的一些问题
'*************************************************************************
'**模 块 名:ModShellEx
'**说 明:增强SHELL函数
'**创 建 人:马大哈
'**描 述:紫水晶工作室 http://www.m5home.com/
'**日 期:2007年4月24日
'**版 本:V1.0
'*************************************************************************
Private Declare Function GetProcessVersion Lib "kernel32" (ByVal ProcessId As Long) As Long
Private Declare Sub Sleep Lib "kernel32" (ByVal dwMilliseconds As Long)
Public Function ShellEx(ByVal FileName As String, Optional ByVal WindowStyle As VbAppWinStyle = vbNormalFocus, Optional ByVal DelayTime As Long = -1) As Long
'与SHELL函数一样的参数,不过是阻塞执行.(同步)
'FileName - 目标文件名
'WindowStyle - 程序运行时窗口的样式
'DelayTime - 等待的时间,单位为ms
'备注:
' DelayTime设置为-1时表示一直等待,直到目标程序运行结束
Dim I As Long, J As Long
I = Shell(FileName, WindowStyle)
ShellEx = I
Do
If GetProcessVersion(I) = 0 Then Exit Do '目标进程退出时跳出
Sleep 10
J = J + 1
DoEvents
If DelayTime <> -1 And J > DelayTime \ 10 Then Exit Do '非永远等待+等待时间达到时跳出
Loop
End Function
免分Mark
Dim retPID As Double, i As Long
For i = 0 To 700
Do While retPID = 0
retPID = Shell("cmd /c dir e:/s/a/l>e:\dir.txt", vbHide)
If retPID Then Exit Do
Loop
retPID = 0
Next