mta*_*lyn 5 windows command-line dos batch-file
我找不到用于提取当前日/月/年的批处理文件语法的简单细分.
我有以下语法来声明用作目录名的变量;
set folder=%date:~10,4%%date:~7,2%%date:~4,2%
Run Code Online (Sandbox Code Playgroud)
任何人都可以对波浪线,双重百分比意味着什么发光(或发布链接)?我似乎无法完全从直觉中解读它.
双重百分比绝对没有意义.它只是并排进行两次变量扩展的结果,例如:
echo %firstname%%lastname%
\_________/\________/
Two separate expansions.
Run Code Online (Sandbox Code Playgroud)
代字号为您提供子字符串.在您的情况下,%date:~10,4%在date环境变量的偏移量10处给出四个字符(在这种情况下,年份可能是格式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!
)
)
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
11917 次 |
| 最近记录: |