我正在尝试将 Windows 服务器上的数千个文件分类到多个文件夹中。文件名为 Extract_YYYYMMDDHHMISS.dat,其中 YYYY 是年份,MM 是月份,DD 是日期。我想将这些文件移动到我定义如下的文件夹层次结构中:
Archive\2013\01\01
Archive\2013\01\02
Archive\2013\01\03
...
Archive\2013\02\01
等等。
@echo off
setlocal enabledelayedexpansion
for /f %%f in ('dir Extract_* /b') do (
echo %%f
echo %%~15,8f
)
endlocal
我正在尝试使用 for 循环和字符串格式将 YYYYMMDD 部分放入变量中,然后进一步拆分它,但我现在被卡住了。
感谢任何帮助。
最佳答案
如果输出正常,试试这个并删除 echo
:
@echo off &setlocal
for %%i in (Extract_*.dat) do (
set "fname=%%~i"
setlocal enabledelayedexpansion
set "name=!fname:*_=!"
set "year=!name:~0,4!"
set "month=!name:~4,2!"
set "day=!name:~6,2!"
echo move "!fname!" "Archive\!year!\!month!\!day!"
endlocal
)
关于windows - 根据文件日期移动文件夹中的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17019278/