使用 VBS 代码和批处理文件的昨天日期(格式:YYYY_MM_DD)
Yesterday date using VBS code and batch file (format : YYYY_MM_DD)
使用批处理我想创建一个包含昨天日期的变量,正是我需要这种格式:"YYYY_MM_DD"
我成功了这个格式:YYYYMMDD
我创建了一个 vbs 文件 "yesterday.vbs" :
d = date() - 1
wscript.echo year(d) * 10000 + month(d) * 100 + day(d)
在我的批处理文件中,我调用了我的代码:
REM ---------------- Yesterday VAR ---------------------
for /f %%a in ('cscript //nologo yesterday.vbs') do set yesterday=%%a
我想要这种格式:
YYYY_MM_DD
提前致谢,
要将您的任务拆分为两个单独的文件,就像您所做的那样:
@Echo Off
For /F %%A In ('CScript //NoLogo "yesterday.vbs"') Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
dtmYesterday = DateAdd("d", -1, Now())
strDate = Year(dtmYesterday) & "_" & Right("0" & Month(dtmYesterday), 2) _
& "_" & Right("0" & Day(dtmYesterday), 2)
WScript.Echo strDate
如果您想从 batch-file 创建 vbscript,运行,则删除它:
@Echo Off
( Echo dtmYesterday = DateAdd("d", -1, Now(^)^)
Echo strDate = Year(dtmYesterday^) ^& "_" ^& Right("0" ^& Month(dtmYesterday^), 2^) ^& "_" ^& Right("0" ^& Day(dtmYesterday^), 2^)
Echo WScript.Echo strDate)>"yesterday.vbs"
For /F %%A In ('CScript //NoLogo yesterday.vbs') Do Set "Yesterday=%%A"
Del "yesterday.vbs"
Echo(%Yesterday%
Pause
或者,您仍然可以使用 vbscript,但将其直接嵌入到您的 batch-file:
<!-- :
@Echo Off
For /F %%A In ('CScript //NoLogo "%~f0?.wsf"') Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
GoTo :EOF
-->
<Job><Script Language="VBScript">
dtmYesterday = DateAdd("d", -1, Now())
strDate = Year(dtmYesterday) & "_" & Right("0" & Month(dtmYesterday), 2) _
& "_" & Right("0" & Day(dtmYesterday), 2)
WScript.Echo strDate
</Script></Job>
综上所述,我建议您忘记 vbscript,而是使用 batch-file 中的 powershell:
@Echo Off
For /F %%A In ('PowerShell -NoP "(Get-Date).AddDays(-1).ToString('yyy_MM_dd')"'
)Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
使用批处理我想创建一个包含昨天日期的变量,正是我需要这种格式:"YYYY_MM_DD"
我成功了这个格式:YYYYMMDD
我创建了一个 vbs 文件 "yesterday.vbs" :
d = date() - 1
wscript.echo year(d) * 10000 + month(d) * 100 + day(d)
在我的批处理文件中,我调用了我的代码:
REM ---------------- Yesterday VAR ---------------------
for /f %%a in ('cscript //nologo yesterday.vbs') do set yesterday=%%a
我想要这种格式:
YYYY_MM_DD
提前致谢,
要将您的任务拆分为两个单独的文件,就像您所做的那样:
@Echo Off
For /F %%A In ('CScript //NoLogo "yesterday.vbs"') Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
dtmYesterday = DateAdd("d", -1, Now())
strDate = Year(dtmYesterday) & "_" & Right("0" & Month(dtmYesterday), 2) _
& "_" & Right("0" & Day(dtmYesterday), 2)
WScript.Echo strDate
如果您想从 batch-file 创建 vbscript,运行,则删除它:
@Echo Off
( Echo dtmYesterday = DateAdd("d", -1, Now(^)^)
Echo strDate = Year(dtmYesterday^) ^& "_" ^& Right("0" ^& Month(dtmYesterday^), 2^) ^& "_" ^& Right("0" ^& Day(dtmYesterday^), 2^)
Echo WScript.Echo strDate)>"yesterday.vbs"
For /F %%A In ('CScript //NoLogo yesterday.vbs') Do Set "Yesterday=%%A"
Del "yesterday.vbs"
Echo(%Yesterday%
Pause
或者,您仍然可以使用 vbscript,但将其直接嵌入到您的 batch-file:
<!-- :
@Echo Off
For /F %%A In ('CScript //NoLogo "%~f0?.wsf"') Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
GoTo :EOF
-->
<Job><Script Language="VBScript">
dtmYesterday = DateAdd("d", -1, Now())
strDate = Year(dtmYesterday) & "_" & Right("0" & Month(dtmYesterday), 2) _
& "_" & Right("0" & Day(dtmYesterday), 2)
WScript.Echo strDate
</Script></Job>
综上所述,我建议您忘记 vbscript,而是使用 batch-file 中的 powershell:
@Echo Off
For /F %%A In ('PowerShell -NoP "(Get-Date).AddDays(-1).ToString('yyy_MM_dd')"'
)Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause