Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/facebook/8.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
Batch file 如何将变量从VBScript传递到批处理?_Batch File_Vbscript - Fatal编程技术网

Batch file 如何将变量从VBScript传递到批处理?

Batch file 如何将变量从VBScript传递到批处理?,batch-file,vbscript,Batch File,Vbscript,我正在尝试将参数从VBScript传递到批处理 这是我的VBScript: Var1=“foo” Var2=“bar” 设置WshShell=WScript.CreateObject(“WScript.Shell”) WshShell.Run“T.bat”&Var1&Var2 这是我的批处理文件: @echo关闭 回显%1 回显%2 暂停>nul 两个参数之间需要一个空格,否则批处理文件将只看到一个参数 WshShell.Run "T.bat "& Var1 & Var2

我正在尝试将参数从VBScript传递到批处理

这是我的VBScript:

Var1=“foo”
Var2=“bar”
设置WshShell=WScript.CreateObject(“WScript.Shell”)
WshShell.Run“T.bat”&Var1&Var2
这是我的批处理文件:

@echo关闭
回显%1
回显%2
暂停>nul

两个参数之间需要一个空格,否则批处理文件将只看到一个参数

WshShell.Run "T.bat  "& Var1 & Var2
变成

WshShell.Run "T.bat  foobar"
要避免意外连接,请更改以下内容:

WshShell.Run "T.bat  "& Var1 & Var2
为此:

WshShell.Run "T.bat "& Var1 & " " & Var2
或者(更好)是:

附加的双引号用于处理参数中的空格。您可以通过使用引用函数使其更具可读性:

Function qq(str)
  qq = """" & str & """"
End Function

WshShell.Run "T.bat "& qq(Var1) & " " & qq(Var2)


附带说明:在批处理文件中,您可能希望使用
%~1
%~2
,而不仅仅是
%1
%2
。瓷砖从参数中删除外部双引号。

不错,但出了什么问题?一些错误消息?意外行为?请回答您的问题…您需要在批处理中的参数之间留一个空格。非常感谢您,我为RRR锁定了wahta
Function qq(str)
  qq = """" & str & """"
End Function

WshShell.Run "T.bat "& qq(Var1) & " " & qq(Var2)