将参数从VBS(使用的输入)传递到批处理脚本不起作用

时间:2014-12-13 17:01:22

标签: batch-file vbscript parameters

我在将VBS用户输入参数传递给批处理脚本时面临以下问题:

  1. 向用户多次请求两个参数的用户输入
  2. 参数未传递给批处理脚本
  3. 这是我的剧本:

    @echo off
    setlocal EnableDelayedExpansion
    
    >>usermessage.vbs ECHO WScript.Echo InputBox( "From_date", "para1", "DD-MMM-YYYY" )
    >>usermessage.vbs ECHO WScript.Echo InputBox( "To_date", "para2", "DD-MMM-YYYY" )
    
    set i=0
    
    FOR /F "tokens=*" %%A IN ('CSCRIPT.EXE //NoLogo usermessage.vbs') DO (
      set /A i+=1
      SET para!i!=%%A
    )
    
    ECHO para1= %para1%
    ECHO para2= %para2%
    
    call path\name.bat '%para1%' '%para2% 23:59:59'
    
    DEL usermessage.vbs
    
    exit
    

1 个答案:

答案 0 :(得分:0)

只有双引号才是批处理脚本中的有效引号,而不是单引号。取代

call path\name.bat '%para1%' '%para2% 23:59:59'

call path\name.bat "%para1%" "%para2% 23:59:59"

并且参数应该按照您的预期传递。

改变这个可能也是个好主意:

>>usermessage.vbs ECHO WScript.Echo InputBox( "From_date", "para1", "DD-MMM-YYYY" )
>>usermessage.vbs ECHO WScript.Echo InputBox( "To_date", "para2", "DD-MMM-YYYY" )

进入这个:

>usermessage.vbs ECHO WScript.Echo InputBox( "From_date", "para1", "DD-MMM-YYYY" )
>>usermessage.vbs ECHO WScript.Echo InputBox( "To_date", "para2", "DD-MMM-YYYY" )

因为>>重定向运算符附加到现有文件而不是替换它。如果由于某种原因usermessage.vbs在上一次运行中尚未删除,您将获得其他输入对话框。 >重定向运算符会截断现有文件,修复此问题。