Batch file 需要使用windows批处理脚本查找上一年的帮助吗
您好,使用windows批处理代码查找上一年需要一些帮助吗 我使用的代码是Batch file 需要使用windows批处理脚本查找上一年的帮助吗,batch-file,vbscript,batch-processing,Batch File,Vbscript,Batch Processing,您好,使用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
:: 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"
您根本不需要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"
这将把今年定为2016年
与Squashman不同,我不喜欢Powershell,请看一下Ruby的vbscript替代品
在Ruby中,这将是
Time.now.year-1
#=> 2016
您可以使用一行批处理来完成此操作
set /a "PREVYEAR=%date:~9,4%-1"
这将把今年定为2016年
与Squashman不同,我不喜欢Powershell,请看一下Ruby的vbscript替代品
在Ruby中,这将是
Time.now.year-1
#=> 2016
DOS
标记不相关。这不是DOS
。您的批处理文件正在创建vbscript,然后执行vbscript。好的,谢谢我删除了它DOS
标记不相关。这不是DOS
。您的批处理文件正在创建vbscript,然后执行vbscript。好的,谢谢我删除了它。批处理文件代码的唯一问题是它依赖于区域。不同国家/地区的人的日期格式顺序不同。批处理文件代码的唯一问题是它取决于地区。不同国家的人的日期格式顺序不同。