我有一个像这样组织的文件列表:test%MM%YYYY%DD.txt,例如:
test01201401.txt
test01201402.txt
test01201403.txt
...
test02201401.txt
test02201402.txt
...
我想创建基于月度的文件夹,例如\test%MM%YYYY
(例如\test012014
或\test022014
),然后将所有基于每日的.txt文件移动到相应的文件夹中,例如全部test012014*
文件被移动到\test012014
文件夹,所有test022014*
文件都被移动到\test022014
文件夹,依此类推。
谢谢!
答案 0 :(得分:1)
@echo off
setlocal enabledelayedexpansion
for /f %%f in ('dir /b ^| findstr /r "^test[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.txt$"') do (
set "filename=%%~nf"
if not exist "!filename:~0,10!" md "!filename:~0,10!"
move "%%~f" "!filename:~0,10!"
)
对于与此正则表达式^test[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]\.txt$
匹配的每个文件名(文件名以test
开头,后跟8位数字,以.txt
结尾),它会检查名称是否与文件名的前10个字符(t e s t M M Y Y Y Y
)已经存在,如果没有创建,则会将文件移动到那里。