我有一个 .bat 文件,它在我在 cmd 中输入日期后执行一些代码:
test.bat 包含:
- set /P PWeekday=asofdate:
因为我总是进入前一个工作日,所以我想编写一些代码来做到这一点。但是发现作为批处理脚本的一部分非常困难,我读到在 excel 中创建宏并将值传递到命令行以运行批处理脚本要容易得多。所以我就是这样做的:
VBA中的PWeekday函数
Public Function PWeekday() As String
Dim offset Day As Integer
If Weekday(Date) = 1 Then ' Monday
offsetDay = 3
End If
PWeekDay = Format(Date - offsetDay, "YYYYMMDD")
End Function
问题:
我必须向批处理文件添加什么,以便在我运行它时,它使用 vba 函数中的 Pweekday 值而不是我的用户输入?
非常感谢,任何帮助或建议将不胜感激。
尽管您可以在 bat 文件中完成所有这些操作,但我可以理解您为什么要在混合脚本中执行此操作。因此,我没有使用 VBA,而是使用 VBScript 来获得所需的结果
VBScript 代码
Dim AsOfDate
If WeekDay(Date,2) = 1 Then 'WeekDay(Date,2) = 2 to ensure monday as start of week because default of vbs function is sunday
AsOfDate=DateAdd("d",-3,Date)
Else
AsOfDate=Date
End If
WScript.Echo DatePart("yyyy",AsOfDate,2) & DatePart("m",AsOfDate,2) & DatePart("d",AsOfDate,2) 'DatePart(xxx,AsOfDate,2) = 2 to ensure monday as start of week
批号
for /f "delims=" %%r in ('cscript //nologo C:\Users\pankaj.jaju\Desktop\Test.vbs') do set result=%%r
echo %result%
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句