【问题标题】:Is there a way to run VBScript as a command-line argument rather than a file?有没有办法将 VBScript 作为命令行参数而不是文件运行?
【发布时间】:2015-08-07 07:44:15
【问题描述】:

假设您需要运行一个非常简单的单行 VBScript 命令,例如获取昨天的月份日期:

wscript.echo day(date()-1)

目前,我必须有一个单独的 .vbs 文件,然后运行它:

for /f %%a in ('cscript //nologo myscript.vbs') do set dd=%%a

或者,如果我不想单独维护脚本:

echo wscript.echo day(date()-1) >temp.vbs
for /f %%a in ('cscript //nologo temp.vbs') do set dd=%%a
del /s temp.vbs >nul: 2>nul:

现在我不介意可怕的for 语句来捕获输出,我只是想知道是否有办法避免必须维护单独的 VBScript 文件,或者即时创建和销毁。

类似:

cscript //nologo //exec wscript.echo day(date()-1)

会很理想,但我知道cscript 不支持。

有什么方法可以实现这一点,记住我想将其输出从cmd 脚本捕获到一个变量中?

【问题讨论】:

  • 你会很幸运的!这是窗户!我也屏住呼吸等待:-)

标签: vbscript command-line-arguments wsh


【解决方案1】:

您可以编写一个脚本来回显Eval'ed 参数:

WScript.Echo Eval(WScript.Arguments(0))

一个脚本,它回显由其(第一个)参数指定的计算结果:

Select Case WScript.Aruments(0)
  Case "prevday"
    wscript.echo day(date()-1)
  Case "answer"
    WScript.Echo 4711
  ...

【讨论】:

    猜你喜欢
    • 2020-08-11
    • 2022-10-21
    • 1970-01-01
    • 2019-08-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-08-15
    相关资源
    最近更新 更多