如何将多个变量从 VBS 传递到批处理脚本?
Posted
技术标签:
【中文标题】如何将多个变量从 VBS 传递到批处理脚本?【英文标题】:How can multiple variable be passed from VBS to batch script? 【发布时间】:2020-05-17 13:14:18 【问题描述】:我有以下 .bat 文件用于运行一系列作业:
-
运行 vbs 脚本来计算前一周的周一和周六日期
运行一系列带有计算日期的命令,以从商业金融应用程序中提取数据
运行 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 文件?
谢谢。
【问题讨论】:
之前有人在这里发表了评论,然后由于某种原因将其删除 - 但它让我思考并尝试了一些我以前没有想到的事情。愚蠢的变化似乎适用于我正在寻找的东西: 【参考方案1】:这是我如何在batch-file 中执行此操作的一个示例:
<!-- :
@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
【讨论】:
以上是关于如何将多个变量从 VBS 传递到批处理脚本?的主要内容,如果未能解决你的问题,请参考以下文章