Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/batch-file/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Windows VBS WScript无法执行_Windows_Batch File_Vbscript_Wsh - Fatal编程技术网

Windows VBS WScript无法执行

Windows VBS WScript无法执行,windows,batch-file,vbscript,wsh,Windows,Batch File,Vbscript,Wsh,我在让Run(或Exec)方法与VBS一起工作时遇到问题。我一直很难运行任意命令,所以我不得不将命令放在批处理文件中,并尝试使用run调用.bat文件。甚至这种方法也不起作用。代码如下: Dim objShell Set objShell = CreateObject("Wscript.Shell") objShell.Run "C:\Path\to\my\batch.bat" Set objShell = Nothing 打开命令提示符,只需输入“C:\Path\to\my\batch.ba

我在让Run(或Exec)方法与VBS一起工作时遇到问题。我一直很难运行任意命令,所以我不得不将命令放在批处理文件中,并尝试使用run调用.bat文件。甚至这种方法也不起作用。代码如下:

Dim objShell
Set objShell = CreateObject("Wscript.Shell")
objShell.Run "C:\Path\to\my\batch.bat"
Set objShell = Nothing
打开命令提示符,只需输入“C:\Path\to\my\batch.bat”即可完全按照我的预期运行。但是,当使用上面的VBS代码时,它什么也不做。批处理文件中的命令直接由指向可执行文件的路径和指向可执行文件的路径组成。按如下所示更改上面的Run命令将导致与尝试调用批处理文件相同的结果—根本没有

objShell.Run "C:\Path\to\my\executable.exe C:\Path\to\my\file.extension"
我的最终目标是在脚本中构建文件字符串的路径,但即使硬编码失败,这似乎也无关紧要。任何帮助都将不胜感激。

试试看

objShell.Exec "C:\Path\to\my\batch.bat"


我可以通过两个改变来解决这个问题。首先,我在命令前面添加了“cmd/c”

这导致了另一个错误(找不到文件),这实际上是由我试图执行的程序的计时问题引起的。在Run命令之后(在处理objSehll对象之前)添加1秒延迟解决了此问题


感谢所有响应的人。

如果batch.bat中的可执行路径是完整路径,您可能缺少引号。示例:
objShell.Run”““c:\Program Files\Windows NT\Accessories\wordpad.exe”“c:\Users\Public\desktop.ini”“”
如果尝试运行记事本会怎么样
objShell.Run“notepad”
?尝试
Result=objShell.Run(“C:\Path\to\my\batch.bat”,1,True)
然后
Wscript.Echo Result
?读一读。您是否也尝试了
Wscript.Echo“Err(&Err.Number&”)和Err.Description“
来获取提示?您说调用
Run
方法根本没有任何作用,但您是如何验证的?预期结果是什么?
objShell.Run "%comspec% /K C:\Path\to\my\batch.bat"