我用SHELL来运行指定的.BAT文件,为什么窗口只是闪了一下却没有运行呢?我打开控制面板里的服务查看运行的项目,确实没看到.我的代码:
Option Explicit Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess _
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess _
As Long, ByVal uExitCode As Long) As Long
Dim x
Private Sub Command1_Click()
x = Shell("D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\startup.bat", 1)
End Sub
Private Sub Command2_Click()
x = Shell("COMMAND.COM D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\shutdown.bat", 1)
End Sub
Option Explicit Private Declare Function OpenProcess Lib "kernel32" (ByVal dwDesiredAccess _
As Long, ByVal bInheritHandle As Long, ByVal dwProcessId As Long) As Long
Private Declare Function TerminateProcess Lib "kernel32" (ByVal hProcess _
As Long, ByVal uExitCode As Long) As Long
Dim x
Private Sub Command1_Click()
x = Shell("D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\startup.bat", 1)
End Sub
Private Sub Command2_Click()
x = Shell("COMMAND.COM D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\shutdown.bat", 1)
End Sub
解决方案 »
- 虽然登录界面还是8月21日的升级界面,但我还是想方设法进来散分。。
- 如何拦截Windows消息
- ftpgetfile下载文件为什么非常慢(急)
- 用ADO建表ACCESS的表,请教```
- 能否在VB中控制outlook express(不是ms outlook),有没有对它的引用库,谢谢了
- 怎样取得一个打印机的IP地址
- 请写一个连续播放多个MIDI 的程序。我是超级菜鸟(以前没有接触过面向对象的高级语言)
- 用什么函数删除一个文件夹
- 怎么确切得到coolbar的band在form中的定位
- 在VB里面如何调用CHM格式的文件?
- 两个小问题,紧急求救!!!
- 急问,想在richtextbox1上加一个VScroll1滚动条,怎么写代码?
D:\MICROSOFT VISUAL STUDIO\VB98>我用鼠标双击D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\shutdown.bat是能够运行的,这是咋回事儿呢?
@echo off
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem
rem $Id: startup.bat,v 1.4 2002/01/15 02:55:38 patrickl Exp $
rem ---------------------------------------------------------------------------rem Guess CATALINA_HOME if not defined
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=.
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
set CATALINA_HOME=..
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHomeset EXECUTABLE=%CATALINA_HOME%\bin\catalina.batrem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end
:okExecrem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgscall "%EXECUTABLE%" start %CMD_LINE_ARGS%:end
shutdown.bat:
@echo off
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Stop script for the CATALINA Server
rem
rem $Id: shutdown.bat,v 1.5 2002/01/15 02:55:38 patrickl Exp $
rem ---------------------------------------------------------------------------rem Guess CATALINA_HOME if not defined
if not "%CATALINA_HOME%" == "" goto gotHome
set CATALINA_HOME=.
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
set CATALINA_HOME=..
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHomeset EXECUTABLE=%CATALINA_HOME%\bin\catalina.batrem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end
:okExecrem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgscall "%EXECUTABLE%" stop %CMD_LINE_ARGS%:end
我用的是Windows 2000 AdvanceServer
简单看了一下,应该就是jlum99(闲人)兄说的路径问题,试试:
方法1:先在dos中(最好在autoexec.bat中)将所有要用到的路径先用set设置一下,例如:c:\>set CATALINA_HOME=c:\tomcat5
方法2:把bat中"%CATALINA_HOME%\bin\catalina.bat"之类的路径改为全路径如:"c:\tomcat5\bin\catalina.bat",再做适当修改方法1一劳永逸,文件夹位置改变的时候只需要修改autoexec就可以了。。但每次开机都要运行autoexec。。
方法2比较死板,文件夹位置改变后又得从新修改bat文件
设置了,还是只有下列两句内容:Bad command or file name
D:\MICROSOFT VISUAL STUDIO\VB98>to:csdnzm(明飞)
你那里可以吗?你能说说你是怎么改的吗?
x = Shell("CMD.EXE /C D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\shutdown.bat", 1)
设置了,还是只有下列两句内容:
=====================
你在dos窗口下运行set命令,看有没有CATALINA_HOME的路径???
你说的方法,窗口只是一闪就没有了to:lsftest()有
??我不会老大,能帮忙试一下吗?先谢了
echo 0
if "%OS%" == "Windows_NT" setlocal
rem ---------------------------------------------------------------------------
rem Start script for the CATALINA Server
rem
rem $Id: startup.bat,v 1.4 2002/01/15 02:55:38 patrickl Exp $
rem ---------------------------------------------------------------------------rem Guess CATALINA_HOME if not definedif not "%CATALINA_HOME%" == "" goto gotHome
echo 1
set CATALINA_HOME=.
echo 2
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo 3
set CATALINA_HOME=..
echo 4
:gotHome
if exist "%CATALINA_HOME%\bin\catalina.bat" goto okHome
echo 5
echo The CATALINA_HOME environment variable is not defined correctly
echo This environment variable is needed to run this program
goto end
:okHomeset EXECUTABLE=%CATALINA_HOME%\bin\catalina.bat
echo 6
rem Check that target executable exists
if exist "%EXECUTABLE%" goto okExec
echo Cannot find %EXECUTABLE%
echo This file is needed to run this program
goto end
:okExecrem Get remaining unshifted command line arguments and save them in the
set CMD_LINE_ARGS=
:setArgs
if ""%1""=="""" goto doneSetArgs
set CMD_LINE_ARGS=%CMD_LINE_ARGS% %1
shift
goto setArgs
:doneSetArgscall "%EXECUTABLE%" start %CMD_LINE_ARGS%
echo 7
:end如果你在dos窗口中连0字都看不见就是其他的问题了。
========================
那就是说,你根本连startup.bat都没有运行。
检查一下你的路径是否有问题吧。在
x = Shell("D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\startup.bat", 1)
之前,先检查一下
dir("D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\startup.bat")
的值吧。
所以你调用的时候应该是:x = Shell("CMD.exe /k D:\JBuilderX\thirdparty\jakarta-tomcat-4.1.27-LE-jdk14\bin\startup.bat", 1)