【问题标题】:How can multiple variable be passed from VBS to batch script?如何将多个变量从 VBS 传递到批处理脚本?
【发布时间】:2020-05-17 13:14:18
【问题描述】:

我有以下 .bat 文件用于运行一系列作业:

  1. 运行 vbs 脚本来计算前一周的周一和周六日期
  2. 运行一系列带有计算日期的命令,以从商业金融应用程序中提取数据
  3. 运行 vbs 脚本以加载和运行 Excel 宏

批处理文件的第一部分如下:

echo off
rem Get last weeks Monday-Saturday dates
for /F %%n in ('cscript.exe //nologo GetLastWeek.VBS') do set LastWeek=%%n

GetLastWeek.vbs 如下:

GetThisMonday = DateSerial(Year(Date), Month(Date), Day(Date) - DatePart("w", Date) + 1)
GetThisMonday=DateAdd("d",+1,GetThisMonday)
GetLastMonday=DateAdd("ww",-1,GetThisMonday)
GetLastSaturday=DateAdd("d",+6,GetLastMonday)
wscript.echo GetLastMonday

这可以很好地返回 1 个日期 (GetLastMonday),但我还需要第二个日期 (GetLastSaturday)。

我需要做什么才能将这两个值传回 bat 文件?

谢谢。

【问题讨论】:

  • 之前有人在这里发表了评论,然后由于某种原因将其删除 - 但它让我思考并尝试了一些我以前没有想到的事情。愚蠢的变化似乎适用于我正在寻找的东西:

标签: batch-file vbscript


【解决方案1】:

这是我如何在 中执行此操作的一个示例:

<!-- :
@Echo Off
For /F "Tokens=1,2Delims=," %%G In ('^""%__AppDir__%cscript.exe" //NoLogo "%~f0?.wsf"^"'
)Do Set "LastMon=%%G"&Set "LastSat=%%H"
Rem Rest of code below here.
Set LastMon
Set LastSat
Pause
Rem No more code below here.
Exit /B
-->
<Job><Script Language="VBScript">
    WScript.Echo(Date-Weekday(Date,vbTuesday)&","&Date-Weekday(Date,vbSunday))
</Script></Job>

【讨论】:

    【解决方案2】:

    之前有人在这里发表了评论,然后由于某种原因将其删除 - 但它让我思考并尝试了一些我以前没有想到的事情。以下更改似乎适用于我正在寻找的内容:

    wscript.echo GetLastMonday & "," & GetLastSaturday
    
    for /f "tokens=1,2 delims=," %%A in ('cscript //nologo lastweek.vbs') do @echo %%A %%B 
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2021-08-09
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多