I am attempting to write a batch file that will, eventually, create a file with a name based upon the current month. However, I have already encountered some problems. I am attempting to use a if/elseif statements to set a variable that contains the month name as a string with no success. It merely echos "" to the screen instead of the month name.
@echo OFF
set month-num=%date:~4,2%
if "%month-num%" == "01" then set month_txt="January" else if "%month-num%" == "02" then set month_txt="February" else if "%month-num%" == "03" then set month_txt="March" else if "%month-num%" == "04" then set month_txt="April" else if "%month-num%" == "05" then set month_txt="May" else if "%month-num%" == "06" then set month_txt="June" else if "%month-num%" == "07" then set month_txt="July" else if "%month-num%" == "08" then set month_txt="August" else if "%month-num%" == "09" then set month_txt="September" else if "%month-num%" == "10" then set month_txt="October" else if "%month-num%" == "11" then set month_txt="November" else if "%month-num%" == "12" then set month_txt="December"
@echo "%month_txt%"
timeout /t -1
I would really appreciate any guidance; I am not too familiar with this form of programming.
I suggest you to use another method to get the month name; for example, via an array :
@echo OFF
setlocal EnableDelayedExpansion
rem Initialize month names based on two-digits numbers
set i=100
for %%a in (January February March April May June July August September October November December) do (
set /A i+=1
set month[!i:~1!]=%%a
)
set month-num=%date:~3,2%
set month-txt=!month[%month-num%]!
echo "%month-txt%"
timeout /t -1
If you are able to add a script to your machine from the Internet, I have been successful using getTimestamp.bat from http://www.dostips.com/forum/viewtopic.php?t=4847 .
C:>type t.bat
CALL getTimestamp.bat -F "{MONTH}"
FOR /F "usebackq tokens=*" %%m IN (`getTimestamp.bat -F "{MONTH}"`) DO (SET "MONTH_NAME=%%m")
ECHO MONTH_NAME is set to %MONTH_NAME%
The result of running it is:
9:34:08.95 C:\src\bat
C:>call t.bat
9:34:15.87 C:\src\bat
C:>CALL getTimestamp.bat -F "{MONTH}"
August
MONTH_NAME is set to August
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.