GPSPOW
asked on
Appending the EOM date to a file name dependent on the current date
In the past I was given the syntax to append the today's date to a file name:
"filename_"%date:~10,4%%da te:~4,2%%d ate:~7,2%" .txt"
Can I get the syntax for the previous month's end date in a yyyymmdd format?
Example:
If today is 3/2/2015, the output would be 20150228.
Thanks
Glen
"filename_"%date:~10,4%%da
Can I get the syntax for the previous month's end date in a yyyymmdd format?
Example:
If today is 3/2/2015, the output would be 20150228.
Thanks
Glen
ASKER
Here is a batch file I have copied from one that works for the EOM date. However, for some reason it is not copying the data.
I have double checked the paths and they are correct.
Can someone look and see if there is a syntax error?
Thanks
glen
I have double checked the paths and they are correct.
Can someone look and see if there is a syntax error?
net use D:\DTS
echo off
call :EOM
echo %eom%
:EOM
setlocal
REM Get todays date (into mm, dd, yy variables)
for /f "skip=1 tokens=2-4 delims=(-)" %%a in ('"echo.|date"') do (
for /f "tokens=1-3 delims=/.- " %%A in ("%date:* =%") do (
set "%%a=%%A"
set "%%b=%%B"
set "%%c=%%C"
)
)
REM Convert month to number and decrease by 1
set /A "mm=1%mm% - 101"
REM If this is January, then decrease year and make month December
if %mm% == 0 (
set mm=12
set /a yy-=1
)
REM Get the normal last day for this month
for /F "tokens=%mm% delims=," %%A in ("31,28,31,30,31,30,31,31,30,31,30,31") do set dd=%%A
REM See if this is a leap year, if so and it's February, add one to last day of month
set /A "leap=%yy% %% 4"
if %mm% == 2 if %leap% == 0 set /A "dd+=1"
REM Return end of prior moth in eom variable in YYYYMMDD format
endlocal & set eom=%yy%%mm%%dd%
exit /b
copy D:\DTS\MonthlyConiferData\ConiferData_SQL.txt "\\pmcfs\groups\Accounting\ConiferHealth\ConiferData_"%eom%".txt"
net use D:\DTS /DELETE
Thanks
glen
Does your code return the last day of the prior month, which is your original question? If not, you can use my solution for that.
ASKER
I figured out why it was not running. The "exit /b" command stopped the batch.
I am getting the last day of the month.
However if the numeric month is Jan - Sept I only have one digit instead of a leading zero. So Jan shows up as 2015131. It needs to be 20150131.
If I use your code, what do I replace in the %eom% for date variable in the destination file name? Or if I stick with my solution, what can I add to determine when I need the leading zero?
thanks
Glen
I am getting the last day of the month.
However if the numeric month is Jan - Sept I only have one digit instead of a leading zero. So Jan shows up as 2015131. It needs to be 20150131.
If I use your code, what do I replace in the %eom% for date variable in the destination file name? Or if I stick with my solution, what can I add to determine when I need the leading zero?
thanks
Glen
ASKER CERTIFIED SOLUTION
membership
This solution is only available to members.
To access this solution, you must be a member of Experts Exchange.
ASKER
Thanks for the help
Glen
Glen
You're welcome. Glad to help...
Open in new window