批文件日/月/年语法?

我无法find提取当前日/月/年的batch file语法的简单细目。

我有以下语法来声明一个variables用作目录名称;

set folder=%date:~10,4%%date:~7,2%%date:~4,2% 

任何人都可以在徘徊,双重百分比意味着什么?(或张贴链接)? 我似乎无法完全破译直觉。

Solutions Collecting From Web of "批文件日/月/年语法?"

双重百分比意味着什么都没有。 这只是两个并行扩展的结果,比如:

 echo %firstname%%lastname% \_________/\________/ Two separate expansions. 

代字号给你一个子串。 在你的情况下, %date:~10,4%date环境变量的偏移十位给出了四个字符(在这种情况下,因为格式可能在2011年12 %date:~10,4% date Thu 29/12/2011 ,偏移从零开始)。

如果你输入set /? 在Windows命令代码中,它会解释所有的选项,包括使用负偏移从字符串末尾提取的妙用。

但是,您应该记住date环境变量格式取决于语言环境,所以这种简单的字符串抽取不太可能在所有国际版本的Windows(这一点我几年前)中工作。

更好的解决方案是使用WMI获取日期组件,例如Rob van der Woude出色的脚本页面 ,在这里复制完整:

 FOR /F "skip=1 tokens=1-6" %%A IN ('WMIC Path Win32_LocalTime Get Dayˆ,Hourˆ,Minuteˆ,Monthˆ,Secondˆ,Year /Format:table') DO ( IF NOT "%%~F"=="" ( SET /A SortDate = 10000 * %%F + 100 * %%D + %%A SET /A SortTime = 10000 * %%B + 100 * %%C + %%E SET SortTime=0000000!SortTime! SET SortTime=!SortTime:~-6! ) ) 

〜和%% s分割字符串(如果你只是输入日期到命令它显示你完整的字符串)。

%日期:〜10,4%意味着从第10个字符开始,接下来的4个字符。

同时注意不同的区域设置,因为它们改变字符串中的字符的顺序。

@paxdiablo打我。 这里有一个链接到一个网站,解释它是如何工作的 ,有很多例子。