[英]Need help to find previous year using windows Batch Script
您好,在使用Windows批處理代碼查找上一年時需要一些幫助
我正在使用的代碼是
:: This is Code for D3
@echo off
set day=-1
echo >"%temp%\%~n0.vbs" s=DateAdd("d",%day%,now) : d=weekday(s)
echo>>"%temp%\%~n0.vbs" WScript.Echo year(s)^& right(100+month(s),2)^&
right(100+day(s),2)
for /f %%a in ('cscript /nologo "%temp%\%~n0.vbs"') do set "result=%%a"
del "%temp%\%~n0.vbs"
set "YYYY=%result:~0,4%"
SET "PREVYEAR=%result:~0,4%-%1%"
set "MM=%result:~4,2%"
set "DD=%result:~6,2%"
SET YEAR=%DATE:~-4%
set "filename=%mm%%dd%%yyyy%"
echo "E:\Data Loads Folder\SafetyAndSecurity\D3\QVD\*%YYYY%_%filename%.QVD"
echo "E:\Data Loads Folder\SafetyAndSecurity\D3\QVD\*%PREVYEAR%_%filename%.QVD"
pause
這給出了輸出
"E:\Data Loads Folder\SafetyAndSecurity\D3\QVD\*2017_11152017.QVD"
"E:\Data Loads Folder\SafetyAndSecurity\D3\QVD\*2017-_11152017.QVD"
我需要一些建議,如何找到上一年,變量PREVYEAR的輸出應為2016
您根本不需要Vbscript來執行此操作。 盡管它確實有幫助,但即使Powershell是一個好主意,您也可以使用WMIC和Batch來完成所有這一切。
@echo off
REM Get Date and Time regardless of regional setttings
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
REM Set year month and day into its own variables.
set "yyyy=%dt:~0,4%"
set "mm=%dt:~4,2%"
set "dd=%dt:~6,2%"
REM Subtract year
set /a "yyyy-=1"
您可以一批完成此操作
set /a "PREVYEAR=%date:~9,4%-1"
將PREVYEAR設置為2016
與Squashman不同,我不喜歡Powershell,請看一下Ruby替代vbscript。
在Ruby中,這將是
Time.now.year-1
#=> 2016
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.