你能帮我完成这项我正在努力完成的简单任务吗
这是场景
我们有一个文件夹,我们称之为"Folder1",其中包含大量用六对数字命名的文件,如下所示
"78 28 96 32 94 93.jpg">
"52 67 30 29 63 40.jpg">
"17 33 07 11 08 00.jpg"<16 34 33 05 41 53.jpg">
在这些文件旁边,我们有从"00"到"99"的文件夹。在每个文件夹中,我们都有另一组以相同方式命名的文件夹
因此,我们需要做的是根据文件名称中的第4和第5对数字将这些文件移动到现有文件夹中,如下所示
"78 28 9632 9493.jpg"应移到"Folder1\32\94
"52 67 3029 6340.jpg"应移到"Folder1\29\63">
"17 33 0711 0800.jpg"应该移到"文件夹1\11\\08>">
依此类推
如何在"Folder1"中使用批处理文件
文件夹已经存在,我们只需要移动文件
谢谢!
@ECHO OFF
SETLOCAL
SET "sourcedir=U:sourcedir"
FOR /f "delims=" %%a IN (
'dir /b /a-d "%sourcedir%?? ?? ?? ?? ?? ??.jpg" '
) DO (
FOR /f "tokens=4,5delims= " %%p IN ("%%~na") DO (
ECHO MOVE "%sourcedir%%%a" "%sourcedir%%%p%%q"
)
)
GOTO :EOF
您需要更改sourcedir
的设置以适应您的情况。
对与提供的掩码匹配的文件(仅)执行目录扫描,然后根据找到的每个文件名的name
部分,选择标记4和5到%%p
和%%q
。
所需的MOVE命令仅用于测试目的的ECHO
验证命令正确后,将ECHO MOVE
更改为MOVE
以实际移动文件。附加>nul
以抑制报告消息(例如1 file moved
)