use*_*314 2 vbscript date batch-file
使用批处理,我想创建一个包含昨天日期的变量,正是我需要这种格式:“ YYYY_MM_DD”
我成功使用了以下格式:YYYYMMDD
我创建了一个vbs文件“ yesterday.vbs”:
d = date() - 1
wscript.echo year(d) * 10000 + month(d) * 100 + day(d)
Run Code Online (Sandbox Code Playgroud)
在我的批处理文件中,我调用了代码:
REM ---------------- Yesterday VAR ---------------------
for /f %%a in ('cscript //nologo yesterday.vbs') do set yesterday=%%a
Run Code Online (Sandbox Code Playgroud)
我想要这种格式:
YYYY_MM_DD
提前致谢,
像完成操作一样,将您的任务分为两个单独的文件:
@Echo Off
For /F %%A In ('CScript //NoLogo "yesterday.vbs"') Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
Run Code Online (Sandbox Code Playgroud)
dtmYesterday = DateAdd("d", -1, Now())
strDate = Year(dtmYesterday) & "_" & Right("0" & Month(dtmYesterday), 2) _
& "_" & Right("0" & Day(dtmYesterday), 2)
WScript.Echo strDate
Run Code Online (Sandbox Code Playgroud)
如果要从批处理文件创建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
Run Code Online (Sandbox Code Playgroud)
另外,您仍然可以使用vbscript,但将其直接嵌入到批处理文件中:
<!-- :
@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>
Run Code Online (Sandbox Code Playgroud)
@Echo Off
For /F %%A In ('PowerShell -NoP "(Get-Date).AddDays(-1).ToString('yyy_MM_dd')"'
)Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
Run Code Online (Sandbox Code Playgroud)