Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date 在批处理文件(cmd)中获取前一天和前一天_Date_Batch File_Cmd - Fatal编程技术网

Date 在批处理文件(cmd)中获取前一天和前一天

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

我有以下内容来确定日期,并根据日期获取一个文件。我需要修改这个抓取一个日期为昨天和前天的文件,即日期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_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"