在batch file中需要_YYYY_MM后缀到文件名

假设传入的报表date中没有date月份的前导零。 通常它是作为参数1传递的,但是在这个例子下我强制给出一个值。

我想要构造一个string,从传入的date中提取月份和年份,然后构造YYYY_MM格式的string,其中MM具有前导零。

REM SET ReportingDate=%1 SET ReportingDate=7/31/2011 @For /F "tokens=1,2,3 delims=/ " %%A in ("%ReportingDate%") do @( Set Month=%%A Set Day=%%B Set Year=%%C ) echo Year=%Year% echo Month=%Month% SET NewFileName=MEMBOB_%Year%_%Month%.csv 

问:我对batch file的了解是有限的。 当date月份是1位数字时,我有什么办法强制montgh中的前导零?

如果月份小于10,则使用if语句预先设置0:

 if %Month% LSS 10 Set Month=0%Month%