运行命令行:无法找到文件

时间:2016-01-12 09:27:57

标签: vbscript cmd

我试图从VBScript运行一些命令:

Dim objShell
Set objShell = WScript.CreateObject("WScript.shell")
objShell.Run "cmd /c C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\scripts"
objshell.Run "lcm_cli.bat -lcmproperty C:\LCMBiar_Import.property"
WScript.Sleep 500
wshshell.SendKeys "{ENTER}"

但是我收到了这个错误

  

biarimport.vbs(4,1)(null):系统找不到指定的文件。

很明显,lcm_cli.batLCMBiar_Import.property文件不存在,但并非如此,如果我直接运行它就可以正常工作CMD。

1 个答案:

答案 0 :(得分:1)

运行声明

objShell.run "cmd /c C:\some\folder"

不会将工作目录更改为该文件夹。它只会生成一个CMD实例,该实例会抛出一个错误,即命令C:\some\folder无法识别,然后立即关闭(/c)。

由于工作目录没有改变,后续的法规在错误的工作目录中运行,因此无法找到lcm_cli.bat

objshell.run "lcm_cli.bat -lcmproperty C:\LCMBiar_Import.property"

使用CurrentDirectory属性更改工作目录:

objShell.CurrentDirectory "C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\scripts"
objshell.Run "lcm_cli.bat -lcmproperty C:\LCMBiar_Import.property"

或以完整路径运行批处理脚本:

objShell.Run """C:\Program Files (x86)\SAP BusinessObjects\SAP BusinessObjects Enterprise XI 4.0\win64_x64\scripts\lcm_cli.bat"" -lcmproperty C:\LCMBiar_Import.property"

请注意,在Run语句中使用时,任何包含空格的路径都必须放在嵌套的双引号中(bot不具有CurrentDirectory属性)。此外,您不需要cmd /c来启动批处理脚本。只有在使用CMD内置函数(如dir或I / O重定向)时才需要它。