从命令行运行SC

时间:2015-06-16 14:43:45

标签: windows batch-file quotes quoting

我正在进行以下工作:

    @ECHO OFF
SET SERVICE_NAME=VBoxService
if [%VBOX_EXE%] == [] (
  SET VBOX_EXE="D:\Program Files\Oracle\VirtualBox\VBoxWebSrv.exe"
)
ECHO VBOX_EXE set to %VBOX_EXE%

IF [%1]==[] (
  ECHO Missing parameter
  GOTO USAGE
)

IF "%1" == "install" GOTO INSTALL
IF "%1" == "remove" GOTO REMOVE
ECHO Invalid parameter
GOTO USAGE

:INSTALL
ECHO Installing %SERVICE_NAME% service
echo SC CREATE %SERVICE_NAME% binPath= %VBOX_EXE%
GOTO END

:REMOVE
ECHO Uninstalling %SERVICE_NAME% service
SC DELETE %SERVICE_NAME%
GOTO END


:USAGE
ECHO Usage:
ECHO %0 "[install]|[remove]"
ECHO if environtment variable VBOX_EXE is not set it will be set to:
ECHO   "D:\Program Files\Oracle\VirtualBox\VBoxWebSrv.exe"
ECHO Where install installs the service
ECHO and remove removes the service

:END

我遇到的问题是对SC CREATE的调用无法正常工作。该命令看起来不错,如果我从命令窗口复制/通过它,它按预期工作,但从批处理文件运行时它永远不会创建服务。我觉得这是一个引用问题。

提前致谢

1 个答案:

答案 0 :(得分:0)

Duh ......我正在调试并忘记删除该行的回声。一旦我删除了回声,一切都按计划进行。