将VBS用户输入参数传递给批处理脚本时,我遇到以下问题:
这是我的脚本:
@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
在批处理脚本中,只有双引号是有效的引号字符,而不是单引号。代替
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
在上一次运行中未删除,则会显示其他输入对话框。该>
重定向操作截断一个已经存在的文件,解决这个问题。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句