【问题标题】:Pass date argument to .exe将日期参数传递给 .exe
【发布时间】:2013-02-26 00:14:52
【问题描述】:

使用 .vbs 脚本,我想运行带有日期参数的 .exe。日期参数是“次日日期”。我在下面尝试了这个脚本,但我得到了错误:invalid month in date。

为什么?

Set WshShell = CreateObject("WScript.Shell")

NextDayDate = DateAdd("d",1,dtmStart)
WshShell.Run """C:\stmt.exe"" DATE=NextDayDate

【问题讨论】:

    标签: vbscript


    【解决方案1】:

    VBScript 不做变量插值。您只需将日期连接到字符串的末尾

    Set WshShell = CreateObject("WScript.Shell")
    
    NextDayDate = DateAdd("d",1,dtmStart)
    WshShell.Run """C:\stmt.exe"" DATE=" & NextDayDate 
    

    如果日期中有空格,您可能需要包含引号(尽管这可能取决于您的可执行文件)。

    WshShell.Run """C:\stmt.exe"" DATE=""" & NextDayDate & """"
    

    【讨论】:

    • 感谢您的帮助。我收到了 DATE=" 和 NextDayDate 的错误。但是,在我取出报价后它起作用了。
    • +1,特别是因为 both 字符串表达式都是正确的 wrt 引号和运算符。
    • 尽管可执行路径周围的引号是徒劳的,因为它显然不包含任何空格。 ;) 我个人更喜欢使用引用函数而不是转义双引号 (Function qq(str) : qq = Chr(34) & str & Chr(34) : End Function)。我相信"... DATE=" & qq(NextDayDate)"... DATE=""" & NextDayDate & """" 更具可读性。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-06-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-08-25
    • 1970-01-01
    相关资源
    最近更新 更多