Чтобы разделить вашу задачу на два отдельных файла, как вы это сделали:
batch-file :
@Echo Off
For /F %%A In ('CScript //NoLogo "yesterday.vbs"') Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause
vbscript :
dtmYesterday = DateAdd("d", -1, Now())
strDate = Year(dtmYesterday) & "_" & Right("0" & Month(dtmYesterday), 2) _
& "_" & Right("0" & Day(dtmYesterday), 2)
WScript.Echo strDate
Если вы хотите создать 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 , но встроить его непосредственно в пакетный файл :
<!-- :
@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 и использовать
powershell из вашего
пакетного файла вместо:
@Echo Off
For /F %%A In ('PowerShell -NoP "(Get-Date).AddDays(-1).ToString('yyy_MM_dd')"'
)Do Set "Yesterday=%%A"
Echo(%Yesterday%
Pause