我正在尝试编写一个批处理文件,最终会创建一个名称基于当前月份的文件。但是,我已经遇到了一些问题。我试图使用if / elseif语句将包含月份名称的变量设置为字符串,但没有成功。它只是回显屏幕而不是月份名称。
@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
我真的很感激任何指导;我对这种编程形式并不太熟悉。
答案 0 :(得分:2)
我建议您使用其他方法获取月份名称;例如,通过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
答案 1 :(得分:0)
如果您能够从Internet向您的计算机添加脚本,我已成功使用http://www.dostips.com/forum/viewtopic.php?t=4847中的getTimestamp.bat。
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%
运行它的结果是:
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