嗨,我在通过vbscript将参数传递到批处理文件时遇到问题。
我不是很擅长编程,所以我确定我只是缺少一些愚蠢的东西。
无论如何,我正在使用vbscript隐式运行批处理文件
该vbscript称为"C:\Program Files (x86)\scripts\check.vbs" %S "%D"
其中%S是状态,%D是目录。
如果我直接将批处理文件称为"C:\Program Files (x86)\scripts\checkdir.bat" %S "%D"
,则一切正常,除非弹出一个dos窗口,这很烦人。
因此,我环顾了互联网,发现这个可以静默运行批处理文件的vbscript。实际上,它确实会以静默方式运行它,但是它不会将参数传递给批处理文件。
这是vbscript:
Set WshShell = CreateObject("WScript.Shell")
WshShell.Run chr(34) & "C:\Program Files (x86)\scripts\checkdir.bat" & Chr(34), 0
Set WshShell = Nothing
我将如何传递参数?我已经搜索过,但是无法提供任何对我有用的东西,我会在运行它时出错,或者参数无法通过。
最佳答案
假设您以这种方式调用VBScript ...
wscript myscript.vbs ArgumentS ArgumentD
然后换出第二行应该可以工作...
WshShell.Run """C:\Program Files (x86)\scripts\checkdir.bat"" " & WScript.Arguments.Item(0) & " """ & WScript.Arguments.Item(1) & """", 0
请注意,我假设您需要将带有双引号的参数D传递给它,所以我将它们包括在内。在字符串中,VBScript将用双引号替换双引号。如果不起作用,请将WshShell.Run更改为wscript.echo,您应该确切看到VBScript试图传递的内容。如果不太正确,请进行调整,然后使用WshShell.Run再试一次。
祝好运。