Date 在批处理文件(cmd)中获取前一天和前一天
我有以下内容来确定日期,并根据日期获取一个文件。我需要修改这个抓取一个日期为昨天和前天的文件,即日期1和日期2。我需要改变什么?谢谢Date 在批处理文件(cmd)中获取前一天和前一天,date,batch-file,cmd,Date,Batch File,Cmd,我有以下内容来确定日期,并根据日期获取一个文件。我需要修改这个抓取一个日期为昨天和前天的文件,即日期1和日期2。我需要改变什么?谢谢 echo @echo off > uploadsp.txt set mydate=%date:~10,4%%date:~4,2%%date:~7,2% echo set mydate=%date:~10,4%%date:~4,2%%date:~7,2% >> uploadsp.txt set myfile=Epic_DSH360144_Drug
echo @echo off > uploadsp.txt
set mydate=%date:~10,4%%date:~4,2%%date:~7,2%
echo set mydate=%date:~10,4%%date:~4,2%%date:~7,2% >> uploadsp.txt
set myfile=Epic_DSH360144_Drug_Utilization_%mydate%_DU.txt
echo put %myfile% >> uploadsp.txt
exit
像这样的事情应该可以
@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 "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "result1=%yyyy%-%mm%-%dd%"
set day=-2
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 "MM=%result:~4,2%"
set "DD=%result:~6,2%"
set "result2=%yyyy%-%mm%-%dd%"
set yesterdayFile=Epic_DSH360144_Drug_Utilization_%result1%_DU.txt
set previousdayFile=Epic_DSH360144_Drug_Utilization_%result2%_DU.txt
echo Yesterday: "%result1%" - File to delete is %yesterdayFile%
echo Previous: "%result2%" - File to delete is %previousdayFile%
因此,根据要传输的文件,您可以运行
echo put %yesterdayFile% >> uploadsp.txt
或
这应该能奏效
@echo off
set nd=-1
set nd=-2
set mydate=%date:~10,4%%date:~4,2%%date:~7,2%
echo mydate=%date:~10,4%%date:~4,2%%date:~7,2%
echo s=DateAdd("d",%nd%,now) : d=weekday(s) >"%temp%\%~n1.vbs"
echo WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) >>"%temp%\%~n1.vbs"
for /f %%a in ('cscript /nologo "%temp%\%~n1.vbs"') do set "result=%%a"
del "%temp%\%~n1.vbs"
set yday=%result%
echo s=DateAdd("d",%nd%,now) : d=weekday(s) >"%temp%\%~n2.vbs"
echo WScript.Echo year(s)^& right(100+month(s),2)^& right(100+day(s),2) >>"%temp%\%~n2.vbs"
for /f %%a in ('cscript /nologo "%temp%\%~n2.vbs"') do set "result=%%a"
del "%temp%\%~n2.vbs"
set yyday=%result%
set myfile=Epic_DSH360144_Drug_Utilization_%mydate%_DU.txt
set yfile=Epic_DSH360144_Drug_Utilization_%ydate%_DU.txt
set yyfile=Epic_DSH360144_Drug_Utilization_%yydate%_DU.txt
echo put %myfile% >> uploadsp.txt
echo put %yfile% >> uploadsp.txt
echo put %yyfile% >> uploadsp.txt
pause
您还可以很容易地调用powershell来获取日期并从中减去一天
For /F "delims=" %%G In ('PowerShell -Command "&{((Get-Date).AddDays(-1)).ToString('MMddyyyy')}"') Do Set "yesterday=%%G"
这太完美了!谢谢@irshansyed,如果这是你正在使用的代码,那么你接受它作为你问题的答案。
For /F "delims=" %%G In ('PowerShell -Command "&{((Get-Date).AddDays(-1)).ToString('MMddyyyy')}"') Do Set "yesterday=%%G"