本帖最后由 aloha20200628 于 2024-9-10 18:39 编辑
29楼代码第三行是为兼容系统日期变量 %date% 和 %%~tF 被取值 yyyy*mm*dd 或 yy*mm*dd 两种实况,以便后续的字符串截取偏移量能自适应10位或8位日期值,其实29楼代码还可更简化一步,用 for/f 分割器一气呵成(确保%date%与%%~tF的日期取值方法相同),同时也省略了循环体内的延迟变量... 代码如下
| @echo off &setlocal | | for /f "tokens=1 delims= " %%a in ("%date%") do set "td=%%a" | | cd /d "d:\目标文件夹" &set "dt=d:\目的地文件夹\%td:/=-%" | | md "%dt%" 2>nul | | for /f "delims=" %%F in ('dir /b/tw/o-d') do if "%%~fF" neq "%~f0" ( | | for /f "tokens=1 delims= " %%t in ("%%~tF") do if "%td%"=="%%t" ( | | move /y "%%F" "%dt%\") else pause&exit/b | | ) | | pause&exit/bCOPY |
|