Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/date/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Date Batch命令-在文件夹末尾添加日期_Date_Batch File - Fatal编程技术网

Date Batch命令-在文件夹末尾添加日期

Date Batch命令-在文件夹末尾添加日期,date,batch-file,Date,Batch File,我目前运行一个批处理命令,在advanced中创建一个文件夹1天,并将其标记为MMDDYY。 除了一位数的天数外,一切正常。目前名为“第二天”的文件夹有12214个,是否可以将其命名为120214 @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

我目前运行一个批处理命令,在advanced中创建一个文件夹1天,并将其标记为MMDDYY。 除了一位数的天数外,一切正常。目前名为“第二天”的文件夹有12214个,是否可以将其命名为120214

@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

一旦操作完成,您需要再次填充数据。此外,您还需要更多的逻辑来处理月份变化

@回音 setlocal enableextensions disabledelayedexpansion rem检索数据 对于“wmic OS Get localdatetime/value”中的/f令牌=2 delims==%%a,请设置dt=%%a 设置YY=%dt:~2,2% 设置YYYY=%dt:~0,4% 设置MM=%dt:~4,2% 设置DD=%dt:~6,2% 设置HH=%dt:~8,2% 设置最小值=%dt:~10,2% 设置秒=%dt:~12,2% rem删除日期元素中的填充并增加日期 设置/a y=%YYYY%,m=100%MM%%%100,d=100%DD%%%100+1 rem计算月长 集合/a ml=30+m+m/8%%2,如果%m%equ 2集合/a ml=ml-2+3-y%%4/3-99-y%%100/99+399-y%%400/399 rem调整明天日期的日/月/年 如果%d%gtr%ml%set/a d=1,m=m%%12+1,y+=%m%/12 rem填充日期元素并再次转换为原始变量 设置/a m+=100,d+=100 设置YYYY=%y% 设置YY=%y:~-2% 设置MM=%m:~-2% 设置DD=%d:~-2% 明天回音:%YYYY%/%MM%/%DD%
只需将文件夹创建添加到所需的格式中

批处理对于日期数学来说很麻烦。闰年、月/年变化等都是一件很难处理的事情。我建议使用JScript日期对象,在该对象中,所有此类转换都将自动处理

下面是一个batch/JScript混合脚本。使用.bat扩展名保存它,并按照您习惯于运行典型批处理脚本的方式运行它

@if (@a==@b) @end   /* JScript ignores this multiline comment

:: batch portion

@echo off
setlocal

for /f "tokens=1-3" %%I in ('cscript /nologo /e:JScript "%~f0"') do (
    set "MM=%%I"
    set "DD=%%J"
    set "YYYY=%%K"
)

xcopy /d:%MM%-%DD%-%YYYY% /l . .. >nul 2>&1 || goto loop

echo %MM%/%DD%/%YYYY%
mkdir "%userprofile%\Desktop\%MM%%DD%%YYYY:~-2%\"

pause

goto :EOF

:: end batch portion / begin JScript */

function zeroPad(what) { return (what+'').length < 2 ? '0'+what : what; }

var tomorrow = new Date();
tomorrow.setDate(tomorrow.getDate() + 1);

WSH.Echo([
    zeroPad(tomorrow.getMonth() + 1),
    zeroPad(tomorrow.getDate()),
    tomorrow.getFullYear()
].join(' '));

你应该重新考虑你的命名惯例。应避免使用2位数的年份-使用4。此外,还应使用yyyymmdd,以便文件夹按时间顺序排序。