Excel VBScript运行批处理和传递参数

时间:2013-11-28 14:53:01

标签: excel batch-file vbscript

我正在尝试使用EXCEL VB SCRIPT调用批处理文件,其参数是存储Excel Cells中值的变量。这是代码。使用我现有的代码,它不会将变量值仅传递给Batch,而是将期望这些参数传递给Batch。

如何将实际变量值传递给Batch?

EXCEL VB代码

jserver = Excel.Worksheets("Data_Sheet").Range("A2").Value
ip = Excel.Worksheets("Data_Sheet").Range("B2").Value
port = Excel.Worksheets("Data_Sheet").Range("D2").Value
user = Excel.Worksheets("Data_Sheet").Range("E2").Value
pass = Excel.Worksheets("Data_Sheet").Range("F2").Value

Call Shell("C:\Package\BIN\account.bat jserver ip port user pass")

MsgBox "J SERVER-->" & jumpserver & Chr(13) & "IP-->" & arip & Chr(13) & "PORT-->" & port & Chr(13) & "USER-->" & aruser & Chr(13) & "PASSWORD-->" & arpass, vbInformation

消息框显示正确的值

批次写得像这样 - >

@echo off
ECHO "CREATING ACCOUNT"

REM DECLARE VARIABLES

set jserver=%1%
set ip=%2%
set port=%3%
set user=%4%
set pwd=%5%

ECHO %jserver%
ECHO %ip%
ECHO %port%
ECHO %user%
ECHO %pwd%

价值印刷:

"CREATING ACCOUNT"
jserver
ip
port 
user 
pass

1 个答案:

答案 0 :(得分:1)

如果要通过连接构建命令,请不要使用wrong,而应使用correct运算符:

>> jserver = "JS"
>> ip = "IP"
>> port = "PORT"
>> user = "USER"
>> pass = "PASS"
>> cmd = "C:\Package\BIN\account.bat " & jserver & " " & ip & " " & port & " " & user & " " & pass
>> WScript.Echo cmd
>>
C:\Package\BIN\account.bat JS IP PORT USER PASS

并且不要从互联网上复制未经测试的代码:

>> cmd = "C:\Package\BIN\account.bat " + jserver + " " ip + " " + " " + port + " " +user + " " + pass
>>
Error Number:       1025
Error Description:  Expected end of statement

你是否发现了失踪的&在ip之前?如果没有,开始研究从零件构建字符串的错误较少的方法(加入,替换模板,printf /格式相似的函数)。