批处理文件 - 提前1天根据日期创建文件夹

时间:2014-11-14 19:57:50

标签: date batch-file

@echo off
for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a"
set "YY=%dt:~2,2%" & set "YYYY=%dt:~0,4%" & set "MM=%dt:~4,2%" & set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%" & set "Min=%dt:~10,2%" & set "Sec=%dt:~12,2%"

mkdir "C:\Users\name\Desktop\%mm%%dd%%yy%\"

pause

- 有没有办法让它创建文件夹并在高级版中命名为1天。今天是11/14我希望它创建它并命名为11/15?最终看起来像111514

1 个答案:

答案 0 :(得分:0)

尝试这段cmd魔法。我从名为TOMORROW.BAT的脚本中取出它并重新设计以匹配您的变量。

@echo off

for /f "tokens=2 delims==" %%a in ('wmic OS Get localdatetime /value') do set "dt=%%a" 
set "YY=%dt:~2,2%" 
set "YYYY=%dt:~0,4%"
set "MM=%dt:~4,2%"
set "DD=%dt:~6,2%"
set "HH=%dt:~8,2%"
set "Min=%dt:~10,2%"
set "Sec=%dt:~12,2%"

:loop
  set /a DD+=1

  if %DD% gtr 31 (
    set DD=1
    set /a MM+=1

    if %MM% gtr 12 (
      set MM=1
      set /a YY+=1
      set /a YYYY+=1
    )
  )
xcopy /d:%MM%-%DD%-%YYYY% /l . .. >nul 2>&1 || goto loop

echo %DD%/%MM%/%YYYY%
mkdir "C:\Users\name\Desktop\%MM%%DD%%YY%\"
pause

这里的想法是使用/d的{​​{1}}选项来验证递增的日期 - 否则我们需要手动处理28,29,30或31天的月份。